In the Linux kernel, the following vulnerability has been resolved:
fs/ntfs3: fix deadlock in nireadfolio_cmpr
Syzbot reported a task hung in nireadpagecmpr (now nireadfoliocmpr). This is caused by a lock inversion deadlock involving the inode mutex (nilock) and page locks.
Scenario: 1. Task A enters ntfsreadfolio() for page X. It acquires nilock. 2. Task A calls nireadfoliocmpr(), which attempts to lock all pages in the compressed frame (including page Y). 3. Concurrently, Task B (e.g., via readahead) has locked page Y and calls ntfsreadfolio(). 4. Task B waits for ni_lock (held by A). 5. Task A waits for page Y lock (held by B). -> DEADLOCK.
The fix is to restructure locking: do not take nilock in ntfsreadfolio(). Instead, acquire nilock inside nireadfoliocmpr() ONLY AFTER all required page locks for the frame have been successfully acquired. This restores the correct lock ordering (Page Lock -> nilock) consistent with VFS.
[almaz.alexandrovich@paragon-software.com: nireadpagecmpr was renamed to nireadfolio_cmpr]
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/71xxx/CVE-2025-71309.json",
"cna_assigner": "Linux"
}