UBUNTU-CVE-2026-90139: Null Pointer Dereference
In the Linux kernel, the following vulnerability has been resolved: fuse: check for NULL root inode in fusefillsupersubmount fuseiget() can return NULL when its inode allocation fails, but fusefillsupersubmount() passed the result straight to getfuseinode() and decremented fi->nlookup without checking it: root = fuseiget(sb, parentfi->nodeid, ...); fi = getfuseinode(root); fi->nlookup--; Inside fuseiget() the inode allocation can fail and return NULL. The submount root takes the iget5locked() path, whose allocinode() can fail under memory pressure (the auto-submount branch can fail the same way in newinode() or fuseallocsubmountlookup()): inode = iget5locked(sb, nodeid, fuseinodeeq, fuseinodeset, &nodeid); if (!inode) return NULL; A NULL root makes getfuseinode() a containerof() on NULL and the nlookup decrement a write to a bogus address, oopsing the mount. With CONFIGKASAN the following null pointer dereference is reported when the root inode allocation of an auto-submount fails (e.g. under memory pressure): ================================================================== BUG: KASAN: null-ptr-deref in fusegettreesubmount+0x656/0x8b0 Read of size 8 at addr 00000000000002b0 by task ls/942 CPU: 0 PID: 942 Comm: ls Tainted: G W 6.6 #15 Call Trace: <TASK> fusegettreesubmount+0x656/0x8b0 vfsgettree+0x48/0x140 fcmount+0x13/0x50 fusedentryautomount+0x7a/0xb0 traversemounts+0xca/0x330 stepinto+0x339/0xac0 pathlookupat+0xc5/0x2f0 filenamelookup+0x163/0x2a0 vfsstatx+0xd5/0x200 dostatx+0x83/0xd0 x64sysstatx+0xa0/0xc0 dosyscall64+0x37/0x90 entrySYSCALL64afterhwframe+0x78/0xe2 </TASK> ================================================================== Return -ENOMEM instead; the caller tears down the partially built superblock on error, matching the other error returns in this function.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In fuse_fill_super_submount(), check whether fuse_iget() returns NULL before calling get_fuse_inode() or decrementing nlookup; return -ENOMEM on allocation failure so the caller tears down the partially built superblock.
Event History
Frequently Asked Questions
Who is exposed to this issue?
Systems using the listed Ubuntu Linux kernel packages are exposed when FUSE submount handling reaches the affected inode-allocation path. The failure is associated with root inode allocation failure, such as under memory pressure.
What does an attacker or triggering condition need to cause the failure?
The affected path requires a FUSE submount or auto-submount operation and a failure allocating its root inode. The provided data identifies memory pressure as an example condition that can cause this allocation failure.
What is the impact if the issue is triggered?
A NULL root inode is used without validation, leading to a bogus memory write and an oops of the mount. The reported availability impact is high, while confidentiality and integrity impacts are listed as none.