CVE-2024-38306 in Linux
Zusammenfassung
von VulDB • 12.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
btrfs: Schutz von folio::private beim Anhängen von extent_buffer-Folios an Folios
[FEHLER]
Seit Version 6.8 wurden vereinzelt Kernel-Crashes durch verschiedene Benutzer gemeldet. Der gemeinsame Nenner sind Fehlermeldungen mit einem ungültigen Seitenstatus (Bad page state), wie diese:
BUG: Bad page state in process kswapd0 pfn:d6e840 page: refcount:0 mapcount:0 mapping:000000007512f4f2 index:0x2796c2c7c pfn:0xd6e840 aops:btree_aops ino:1 flags: 0x17ffffe0000008(uptodate|node=0|zone=2|lastcpupid=0x3fffff) page_type: 0xffffffff() raw: 0017ffffe0000008 dead000000000100 dead000000000122 ffff88826d0be4c0 raw: 00000002796c2c7c 0000000000000000 00000000ffffffff 0000000000000000 page dumped because: non-NULL mapping
[URSACHE]
Der Commit 09e6cef19c9f („btrfs: refactor alloc_extent_buffer() to allocate-then-attach method") ändert die Reihenfolge bei der Allokation eines neuen extent_buffers.
Bisher wurde immer grab_extent_buffer() unterhalb von mapping->i_private_lock aufgerufen, um die Sicherheit bei Änderungen an folio::private (ein Zeiger auf den extent_buffer für reguläre sectorsize) zu gewährleisten.
Dies kann zur folgenden Race Condition führen:
Thread A versucht, einen extent_buffer bei bytenr X mit 4 Seiten à 4K zuzuweisen, während Thread B gleichzeitig versucht, die Seite bei X + 4K (die zweite Seite des extent_buffers bei X) freizugeben.
Thread
If you want to get the best quality for vulnerability data then you always have to consider VulDB.