NFSv4.1: zero referring call lists before decoding
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Unclear
- Fix
- Fixed in 6.6.160, 6.12.114, 6.18.57, 7.2.6
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
The vulnerability affects the Linux kernel's NFSv4.1 client callback handling, specifically the code that processes referring call lists in CB_SEQUENCE requests. Because uninitialized pointers can be passed to kfree(), it may cause memory corruption or a kernel crash.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
In the Linux kernel, the following vulnerability has been resolved: NFSv4.1: zero referring call lists before decoding decode_cb_sequence_args() allocates csa_rclists with kmalloc_objs(), so each referring_call_list starts uninitialized. decode_rc_list() assigns rcl_refcalls only when rcl_nrefcalls is nonzero. A valid list with zero referring calls therefore leaves the pointer uninitialized, and nfs4_callback_sequence() later passes stale slab contents to kfree(). Allocate csa_rclists with kzalloc_objs() so every rcl_refcalls member is NULL from the beginning, including valid empty referring call lists.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 4aece6a19cf7f474f15eb861ba74db4479884ce3 · fixed in ed54460caf5b5aa65ec03c9a6032d831f39f19f5; From 4aece6a19cf7f474f15eb861ba74db4479884ce3 · fixed in 7510a5b9edec9d9536a4e69f10edfb2592e6cf7f; From 4aece6a19cf7f474f15eb861ba74db4479884ce3 · fixed in f4d23937e1c41995c2f54af26c89b5e48a41c299; From 4aece6a19cf7f474f15eb861ba74db4479884ce3 · fixed in f31f3c042e024aef437cda42f0424ae8d4594b6c; From 4aece6a19cf7f474f15eb861ba74db4479884ce3 · fixed in 8fa4804fe62ca4155a2d8fc2789d630376cbf2fc
- Linux Linux
2.6.31
- KernelLinux
From 2.6.31 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.2.6
References 5
Questions about CVE-2026-90104
What does this mean?
The NFSv4.1 client code handles a callback request that carries a referring call list with zero entries. The decoder never sets that list's pointer, so later code reads leftover slab memory and passes it to kfree(), which is an invalid free of uninitialized memory.Source: git.kernel.org
Am I affected, and how do I check?
The facts list Linux kernel builds from the commit introducing the bug (4aece6a19cf7f474f15eb861ba74db4479884ce3) up to the fixed versions, covering stable branches 6.6.160 and earlier fixes in 6.12.x, 6.18.x and 7.2.x. To check a kernel, run uname -r and compare it with these ranges; the trigger needs NFSv4.1 callbacks with a CB_SEQUENCE referring call list containing zero referring calls.Source: git.kernel.org
What should I do about it?
Update to a Linux kernel release that includes the fix for the affected branch: 6.6.160 or later, 6.12.114 or later, 6.18.57 or later, or 7.2.6 or later, depending on the version in use.Source: git.kernel.org
Is it being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data