CVE-2026-63808
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
19/07/2026
Última modificación:
19/07/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
exfat: fix potential use-after-free in exfat_find_dir_entry()<br />
<br />
In exfat_find_dir_entry(), the buffer_head obtained from<br />
exfat_get_dentry() is released with brelse(bh) before the fall-through<br />
TYPE_EXTEND branch reads the directory entry through ep (which points<br />
into bh->b_data):<br />
<br />
brelse(bh);<br />
if (entry_type == TYPE_EXTEND) {<br />
...<br />
len = exfat_extract_uni_name(ep, entry_uniname);<br />
...<br />
}<br />
<br />
After brelse() drops our reference, nothing guarantees that the<br />
underlying page backing bh->b_data remains valid for the subsequent<br />
exfat_extract_uni_name() read. This is the same pattern fixed in<br />
commit fc961522ddbd ("exfat: Fix potential use after free in<br />
exfat_load_upcase_table()").<br />
<br />
Move brelse(bh) so it runs after ep is no longer dereferenced on<br />
each branch.<br />
<br />
Confirmed on QEMU x86_64 with CONFIG_KASAN=y + CONFIG_DEBUG_PAGEALLOC=y<br />
+ CONFIG_PAGE_POISONING=y on linux-next, using a crafted exFAT image<br />
(long filename with same-hash collisions forcing the TYPE_EXTEND path).<br />
With a debug-only invalidate_bdev() inserted between brelse(bh) and<br />
the ep read to make the stale-deref window deterministic, the<br />
unpatched kernel faults:<br />
<br />
BUG: KASAN: use-after-free in exfat_find_dir_entry+0x133b/0x15a0<br />
BUG: unable to handle page fault for address: ffff88801a5fa0c2<br />
Oops: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI<br />
RIP: 0010:exfat_find_dir_entry+0x1188/0x15a0<br />
<br />
With this patch applied, the same instrumented harness completes<br />
cleanly under the same sanitizer stack. I have not reproduced a<br />
crash on an uninstrumented kernel under ordinary reclaim; the<br />
instrumented A/B establishes the lifetime violation and that the<br />
patch closes it, not an unaided triggerability claim.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/06c4e1e9967d332ac33ba38b7819851089ff9359
- https://git.kernel.org/stable/c/3f5f8ee9917cc2b9076ac533492d8a200edcabb8
- https://git.kernel.org/stable/c/4d101016d5e587f820b3ae2d5bb6770d86342649
- https://git.kernel.org/stable/c/708b97e792945d3e4653939fd3405d71a61ad065
- https://git.kernel.org/stable/c/8e0abc17fbd7e305802e84fe98b4950d50f9c433
- https://git.kernel.org/stable/c/adfacfbaeae2cb760f492357cc36b41f84ef7f86
- https://git.kernel.org/stable/c/e48f413c2815787b8cade2795e194e3c4cd782ef
- https://git.kernel.org/stable/c/e6f1a11cfb808441a43ffae9b476cc135732cd27



