HIGH
isofs NFS BlockRead Leak
CVE-2026-46124
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
KernelScan AI4.3MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: isofs: validate block number from NFS file handle in isofs_export_iget isofs_fh_to_dentry() and isofs_fh_to_parent() pass an attacker- controlled block number (ifid->block or ifid->parent_block) from the NFS file handle to isofs_export_iget(), which only rejects block == 0 before calling isofs_iget() and ultimately sb_bread(). A crafted file handle with fh_len sufficient to pass the check added by commit 0405d4b63d08 ("isofs: Prevent the use of too small fid") can still drive the server to read any in-range block on the backing device as if it were an iso_directory_record. That earlier fix was assigned CVE-2025-37780. sb_bread() on an out-of-range block returns NULL cleanly via the EIO path, so there is no memory-safety violation. For in-range reads of adjacent-partition data on the same block device, the unrelated bytes end up in iso_inode_info fields that reach the NFS client as dentry metadata. The deployment surface (isofs exported over NFS from loop-mounted images) is narrow and requires an authenticated NFS peer, but the malformed-file-handle class is reportable as hardening next to the existing CVE-2025-37780 fix. Reject block >= ISOFS_SB(sb)->s_nzones in isofs_export_iget() so the check covers both isofs_fh_to_dentry() and isofs_fh_to_parent() call sites with a single line.
02KernelScan AI Analysis
Risk summary
Systems exporting ISO filesystems over NFS are vulnerable to information disclosure attacks. Authenticated NFS clients can craft malicious file handles to read data from adjacent partitions or unrelated areas of the block device, potentially exposing sensitive information from other filesystems on the same storage device.
Vulnerability analysis
The vulnerability occurs in isofs_export_iget() which validates NFS file handle block numbers only against zero but not against the filesystem's upper boundary (s_nzones). Attackers can specify block numbers that point to valid storage blocks outside the ISO filesystem, causing sb_bread() to read arbitrary data from adjacent partitions. This data gets interpreted as iso_directory_record structures and returned to the NFS client as metadata. The fix adds a bounds check to reject block numbers >= s_nzones, ensuring only blocks within the ISO filesystem are accessible.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 5.10 | 5.10.258 | ee0024f5a7e3 |
| 5.15 | 5.15.209 | 31dbb4ba0f71 |
| 5.5 | 5.5 | afbafeddf23d |
| 6.1 | 6.1.175 | 908a76f0b103 |
| 6.12 | 6.12.88 | 0a1af74ae217 |
| 6.15 | 6.15 | 4c721a1d9b3c |
| 6.18 | 6.18.30 | 243764581383 |
| 6.6 | 6.6.140 | bb0988ed4f2e |
| 7.0 | 7.0.7 | — |
| mainline | 7.1-rc2 | — |