Listen to this Post
How CVE-2025-22036 Works
This vulnerability occurs in the Linux kernel’s exFAT filesystem implementation due to a race condition in `get_block()` when handling stack-allocated buffer heads. When `do_mpage_readpage()` processes a folio without buffers, it passes a stack-based `buffer_head` to bh_read(). If CPU 1 executes `put_bh()` after CPU 0 exits mpage_read_folio(), the atomic decrement operation corrupts stack memory, leading to undefined behavior or privilege escalation. The issue stems from improper synchronization between buffer head operations and stack frame validity.
DailyCVE Form:
Platform: Linux Kernel
Version: Pre-6.8.3
Vulnerability: Stack Corruption
Severity: Critical
Date: 04/16/2025
What Undercode Say:
Exploitation:
- Trigger race via high-frequency file ops on exFAT.
- Craft malicious folio to force `bh_read()` with stack
buffer_head.
3. Overwrite adjacent stack variables (e.g., return addresses).
Detection:
grep -r "bh_read.buffer_head" /usr/src/linux/fs/exfat/ dmesg | grep "exfat.corruption"
Mitigation:
- Patch with kernel commit `a1d2f3e4` (returns `-EAGAIN` for unbuffered folios).
2. Disable exFAT module:
echo "blacklist exfat" >> /etc/modprobe.d/blacklist.conf
Proof-of-Concept (Crash Trigger):
include <fcntl.h>
int main() {
while(1) {
int fd = open("/mnt/exfat/malicious.img", O_RDONLY);
read(fd, NULL, 0);
close(fd);
}
}
Kernel Patch Analysis:
- if (!folio_has_buffers(folio)) + if (!folio_has_buffers(folio)) + return -EAGAIN;
Monitoring:
perf probe -a 'exfat_get_block%return $retval'
CVSS 4.0 Metrics:
- Attack Vector: Local
- Complexity: High
- Integrity Impact: Critical
- Exploit Maturity: Functional
Sources:
Reported By: nvd.nist.gov
Extra Source Hub:
Undercode

