CVE-2026-80561 in Linux
Zusammenfassung
von VulDB • 26.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
libceph: Behebung mehrerer unsicherer Decodierungen in decode_locker()
decode_locker() in cls_lock_client.c enthält drei unsichere Decode-Operationen, die es einem böswilligen oder kompromittierten OSD (Object Storage Device) ermöglichen können, slab-out-of-bounds-Lesungen auszulösen:
1. ceph_decode_copy() im Feld locker_id_t name verfügt über keine vorangehende Bereichsprüfung (Bounds Check). Wenn p == end ist, nachdem ceph_start_decoding() struct_len=0 akzeptiert, werden 9 Bytes (= sizeof(ceph_entity_name)) jenseits der validierten Puffergrenze gelesen.
2. *p += sizeof(struct ceph_timespec) nach dem locker_info_t-Header stellt einen ungeprüften Zeigerfortschritt dar. Ein böswilliges OSD kann p hinter end positionieren, wodurch alle nachfolgenden _safe-Prüfungen gegen eine falsche Grenze bestanden werden.
3. len = ceph_decode_32(p) verfügt über keine vorangehende Bereichsprüfung, und die unmittelbar folgende Operation *p += len ist nicht begrenzt (uncapped). Ein böswilliges OSD kann len=0xffffffff senden, wodurch p Gigabytes jenseits von end verschoben wird und das Decode-Fenster vollständig verlassen wird.
Alle drei Probleme werden behoben, indem rohe Operationen durch ihre sicheren Varianten ersetzt werden: ceph_decode_copy -> ceph_decode_copy_safe *p += sizeof(...) -> ceph_decode_skip_n ceph_decode_32(p) -> ceph_decode_32_safe *p += len -> ceph_decode_skip_n
Ein neues Label wird hinzugefügt, um bei jeder Bereichsverletzung -EINVAL zurückzugeben. -EINVAL ist hier angemessen: Die vom OSD empfangenen Daten sind strukturell fehlerhaft, was ein ungültiges Argument für den Decode-Vertrag darstellt, unabhängig davon, ob der Aufrufer oder das Übertragungsmedium (wire) schuld daran ist.
Angreifermodell: Ein böswilliges oder kompromittiertes OSD in einer Multi-Tenant-Ceph-Bereitstellung kann dies gegen jeden Kernel-Client auslösen, der die Klassenmethode lock.get_info aufruft (z. B. während des Erwerbs eines exklusiven RBD-Locks), ohne weitere Berechtigungen als die reine Etablierung der OSD-Sitzung zu benötigen.
[ idryomov: Verwendung von ceph_decode_skip_string() zum Überspringen der Beschreibung, Kürzung des Changelogs ]
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.