KernelScan.io

HIGH Introduced in 2.6.30

nilfs2 SuperRoot OOB

CVE-2026-90419

CVSS 7.1 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H

KernelScan AI6.0MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: nilfs2: prevent out-of-bounds read in super root block parsing super-root inode metadata size is trusted before nilfs_read_inode_common(). Reject super-root inode sizes whose computed on-disk footprint exceeds the filesystem block size. This prevents malformed filesystem images from making nilfs_read_inode_common() read past the end of the super-root block. [ryusuke: clarify the commit title]

02

Engine v0.6.0

Risk summary

A malformed nilfs2 filesystem image can specify an inode size that causes the kernel to read past the end of a block buffer during super-root parsing, leaking adjacent kernel memory or crashing the system. Triggering the bug requires mounting the crafted image, which needs real CAP_SYS_ADMIN in the init namespace — either via physical removable media or a privileged user performing a manual mount. Products that never mount nilfs2 images are not affected.

Affectedfs/nilfs2/the_nilfs.c (nilfs2 filesystem)

Vulnerability analysis

When mounting a nilfs2 filesystem, the inode size field from the on-disk superblock is trusted without verifying that the computed on-disk footprint of the super-root inode fits within a single filesystem block. A crafted image can set an inode size large enough that the inode parsing routine reads beyond the end of the allocated block buffer, exposing adjacent kernel memory or hitting unmapped pages and crashing the kernel. The fix adds a validation check during filesystem layout setup that rejects any inode size whose computed super-root size exceeds the block size, returning an error before the vulnerable parsing path is reached. This bug is only reachable by mounting a crafted nilfs2 filesystem image, which requires real CAP_SYS_ADMIN in the init namespace — nilfs2 is not mountable inside user namespaces — so the realistic trigger is either physical insertion of removable media or a privileged user manually mounting a malicious image.

03

BranchIntroducedFixed inPatch commit
5.102.6.305.10.27016df25205028
5.152.6.305.15.221dcc85fc28f88
6.12.6.306.1.1885b69ebe20d7f
6.122.6.306.12.11071bd64471ff5
6.182.6.306.18.52842397fdfd2e
6.62.6.306.6.1577029e70cf86d
7.22.6.307.2.615c855937641
mainline2.6.307.37cb2f76a6a2b
cip/5.102.6.305.10.271-cip7816df25205028
cip/5.10-rt2.6.305.10.272-cip79-rt3516df25205028
cip/6.12.6.306.1.189-cip615b69ebe20d7f
cip/6.1-rt2.6.306.1.189-cip61-rt325b69ebe20d7f
cip/6.122.6.306.12.111-cip3271bd64471ff5

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtFixed in 5.10.272-cip79-rt35
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)