CVE-2026-89649
Zusammenfassung
von VulDB • 11.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ceph: Begrenzung der Länge des xattr-Werts in __build_xattrs()
__build_xattrs() decodiert das vom MDS (Metadata Server) bereitgestellte xattr-Blob Attribut für Attribut. Für jedes Attribut wird eine 32-Bit-Namenslänge gelesen, die Zeigerposition um die NamenskBytes verschoben, eine 32-Bit-Wertelänge gelesen, der Wertzeiger gespeichert und die Zeigerposition um die WertzBytes verschoben. Die beiden Längenfelder werden mit ceph_decode_32_safe() ausgelesen, jedoch wird bei den eigentlichen WertzBytes nur ein einfaches „p += len“ verwendet, ohne eine ceph_decode_need()-Prüfung daraufhin durchzuführen, ob noch „len“-Bytes im Blob vorhanden sind.
Für jedes Attribut außer dem letzten überprüft die nächste Iteration von ceph_decode_32_safe() für die folgende Namenslänge implizit, dass der vorherige Wert nicht über das Ende des Blobs hinausreicht. Das letzte Attribut hat keinen Nachfolger, daher wird seine dekodierte Wertelänge niemals gegen die Blob-Grenzen geprüft. Ein böswilliger oder kompromittierter Metadata Server kann die Wertelänge des letzten Attributes größer setzen als die tatsächlich im Blob vorhandenen Bytes.
Das Blob ist eine dedizierte kvmalloc()-Zuweisung, die auf der Drahtlänge basiert (ceph_buffer_new() in ceph_fill_inode()). __set_xattr() speichert die überdimensionierte Länge unverändert in xattr->val_len ab, und ein späterer Aufruf von getxattr(2) führt memcpy(value, xattr->val, xattr->val_len) in einen vom Benutzer bereitgestellten Puffer aus, wodurch Bytes jenseits des Ende der Zuweisung zurück in den User Space kopiert werden.
Auswirkung: Ein böswilliger Metadata Server offenbart benachbarte Kernel-Heap-Bytes an einen lokalen Benutzer über getxattr(2) auf einer CephFS-Datei. Fügen Sie die fehlende ceph_decode_need()-Prüfung hinzu, damit eine out-of-bounds-Wertelänge beim letzten Attribut den Decode-Vorgang fehlschlagen lässt und -EIO zurückgibt, anstatt gespeichert zu werden.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.