HIGH
mtd DebugFS OOB
CVE-2026-46190
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
KernelScan AI3.8LOW
01Description
In the Linux kernel, the following vulnerability has been resolved: mtd: spi-nor: debugfs: fix out-of-bounds read in spi_nor_params_show() Sashiko noticed an out-of-bounds read [1]. In spi_nor_params_show(), the snor_f_names array is passed to spi_nor_print_flags() using sizeof(snor_f_names). Since snor_f_names is an array of pointers, sizeof() returns the total number of bytes occupied by the pointers (element_count * sizeof(void *)) rather than the element count itself. On 64-bit systems, this makes the passed length 8x larger than intended. Inside spi_nor_print_flags(), the 'names_len' argument is used to bounds-check the 'names' array access. An out-of-bounds read occurs if a flag bit is set that exceeds the array's actual element count but is within the inflated byte-size count. Correct this by using ARRAY_SIZE() to pass the actual number of string pointers in the array.
02KernelScan AI Analysis
Risk summary
Root users can trigger an out-of-bounds read in the MTD SPI-NOR debugfs interface by accessing parameter files. This could leak limited kernel memory contents or cause system instability. Only affects systems with debugfs mounted and MTD SPI-NOR devices present.
Vulnerability analysis
The vulnerability occurs in spi_nor_params_show() where sizeof(snor_f_names) is used instead of ARRAY_SIZE(snor_f_names) for bounds checking. Since snor_f_names is a pointer array, sizeof() returns 8x the intended value on 64-bit systems, allowing out-of-bounds reads when flag bits exceed the actual array size. The fix correctly uses ARRAY_SIZE() to pass the element count. Attack surface is limited to local root access via debugfs.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 6.12 | 6.12.88 | ca18c180b053 |
| 6.18 | 6.18.30 | 34bdcfb496b2 |
| 6.6 | 6.6.140 | 9a80c458320e |
| 7.0 | 7.0.7 | c0b654bc0b76 |
| mainline | 7.1-rc2 | e47029b977e7 |