CVE-2026-46052 in Linuxinfo

Zusammenfassung

von VulDB • 27.05.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

ceph: d_add() für negative dentries nur aufrufen, wenn sie nicht gehasht sind

Ceph kann d_add(dentry, NULL) für ein negatives dentry aufrufen, das sich bereits in der primären dcache-Hash-Tabelle befindet.

Im aktuellen VFS (Virtual File System) ist dies nicht sicher. d_add() läuft über __d_add() zu __d_rehash(), was dentry->d_hash bedingungslos erneut in den hlist_bl-Bucket einfügt. Wenn das dentry bereits gehasht ist, kann das erneute Einfügen desselben Knotens den Bucket beschädigen, einschließlich der Entstehung einer Selbstschleife. Sobald dies geschieht, kann __d_lookup() endlos in der hlist_bl-Iteration verharren, typischerweise durch Endlosschleifen bei der Prüfung auf dentry->d_hash.next == dentry->d_hash.pprev.

Dies ist erreichbar durch die Wiederverwendung zwischengespeicherter negativer dentries. Ein Ceph-Lookup oder atomic_open kann ein negatives dentry erhalten, das bereits gehasht ist, und fs/ceph/dir.c trifft dann einen von zwei Pfaden, die fälschlicherweise annehmen, dass "negativ" auch "nicht gehasht" bedeutet:

- ceph_finish_lookup(): MDS-Antwort ist -ENOENT ohne Trace -> d_add(dentry, NULL)

- ceph_lookup(): lokaler ENOENT-Schnellpfad für ein vollständiges Verzeichnis mit Shared Caps -> d_add(dentry, NULL)

Beide Pfade können daher ein bereits gehashtes negatives dentry erneut hinzufügen.

Ceph verwendet das korrekte Muster bereits anderswo: ceph_fill_trace() ruft d_add(dn, NULL) nur für eine negative Null-dentry-Antwort auf, wenn d_unhashed(dn) wahr ist.

Beheiden Sie beide Stellen in fs/ceph/dir.c auf dieselbe Weise: rufen Sie d_add() nur für ein negatives dentry auf, wenn es tatsächlich nicht gehasht ist. Wenn das negative dentry bereits gehasht ist, lassen Sie es an Ort und Stelle und verwenden Sie es wie gehabt.

Dies bewahrt das bestehende Verhalten für nicht gehashte dentries und vermeidet gleichzeitig die Beschädigung der d_hash-Liste bei der Wiederverwendung gehashter Negatives.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Zuständig

Linux

Reservieren

13.05.2026

Veröffentlichung

27.05.2026

Moderieren

akzeptiert

Eintrag

VDB-366281

CPE

bereit

EPSS

0.00058

KEV

nein

Aktivitäten

very low

Quellen

Do you know our Splunk app?

Download it now for free!