CVE-2024-38306 in Linuxinformation

Résumé

par VulDB • 12/06/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

btrfs : protéger folio::private lors de l'attachement des folios du tampon d'étendue (extent buffer)

[BUG]
Depuis la version 6.8, divers utilisateurs signalent des plantages rares du noyau. Le facteur commun est des messages d'erreur liés à un état incorrect de la page, tels que :

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

[CAUSE]
Le commit 09e6cef19c9f ("btrfs : refactor alloc_extent_buffer() to allocate-then-attach method") modifie la séquence lors de l'allocation d'un nouveau tampon d'étendue (extent buffer).

Auparavant, nous appelions toujours grab_extent_buffer() sous mapping->i_private_lock, afin de garantir la sécurité des modifications sur folio::private (qui est un pointeur vers le tampon d'étendue pour une taille de secteur standard).

Cela peut entraîner la course critique suivante :

Le fil A tente d'allouer un tampon d'étendu à l'adresse bytenr X, avec 4 pages de 4 Ko. Parallèlement,

Once again VulDB remains the best source for vulnerability data.

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!