CVE-2026-68160 in Linuxinfo

Zusammenfassung

von VulDB • 10.08.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

ceph: Behebung eines Out-of-Bounds-Lesezugriffs vor der Authentifizierung auf snaptrace in ceph_handle_caps()

ceph_handle_caps() liest snap_trace_len aus dem im Netzwerkformat (Wire-Format) codierten Header ceph_mds_caps und verwendet diesen bedingungslos, um einen falschen Endzeiger zu konstruieren (snaptrace + snaptrace_len), der später im Fall CEPH_CAP_OP_IMPORT an ceph_update_snap_trace() übergeben wird:

snaptrace = h + 1; snaptrace_len = le32_to_cpu(h->snap_trace_len); p = snaptrace + snaptrace_len; ... case CEPH_CAP_OP_IMPORT: if (snaptrace_len) {
... if (ceph_update_snap_trace(mdsc, snaptrace, snaptrace + snaptrace_len, false, &realm)) { ... }

ceph_update_snap_trace() dekodiert daraufhin eine struct ceph_mds_snap_realm aus snaptrace unter Verwendung von ceph_decode_need(&p, e, sizeof(*ri), bad) mit dem vom Angreifer bereitgestellten falschen Endzeiger e == snaptrace + snaptrace_len. Bei einem Wert von snaptrace_len == 0xFFFFFFFF wird die Bereichsprüfung trivial erfüllt; ri = p liest sizeof(struct ceph_mds_snap_realm) Bytes hinter den gültigen msg->front-Puffer hinaus, und ri->num_snaps / ri->num_prior_parent_snaps lösen anschließend weitere Out-of-Bounds-Lesezugriffe auf die kodierten snap-Arrays aus.

Die elf Decoderblöcke für msg_version >= 2 .. msg_version >= 12 oberhalb des op-Switches fangen diesen OOB-Fehler jeweils über ihre Hilfsfunktionen ceph_decode_*_safe() / ceph_decode_need() ab, befinden sich jedoch hinter einer durch hdr.version gesteuerten if-Bedingung. Daher erreicht ein böswilliger oder kompromittierter MDS (Metadata Server), der msg->hdr.version = 1 setzt, den IMPORT-Pfad ohne dass eine versiongesteuerte Decodierung snap_trace_len validiert hat. Diese Konstellation besteht seit der Einführung von ceph_handle_caps().

Validieren Sie snap_trace_len gegen den front-Puffer der Nachricht vor dessen Verarbeitung unter Verwendung der kanonischen Hilfsfunktionen ceph_decode_need() / ceph_has_room(). Die Hilfsfunktion begrenzt die Länge durch Subtraktion (n <= end - p, geschützt durch end >= p) anstelle von Zeigeraddition, wodurch sie bei 32-Bit-Kompilierungen wrap-safe ist, in denen p + snap_trace_len den Adressraum überlaufen könnte. Dies entspricht dem Rest des ceph-Dekodierungspfads (z. B. die pool_ns_len-Prüfung einige Zeilen weiter unten), und das vorhandene goto bad-Cleanup deckt diesen Exit-Pfad bereits ab.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Zuständig

Linux

Reservieren

30.07.2026

Veröffentlichung

10.08.2026

Moderieren

akzeptiert

Eintrag

VDB-387511

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Do you need the next level of professionalism?

Upgrade your account now!