CVE-2026-90104
Description
A flaw was found in the Linux kernel's NFSv4.1 implementation. When decoding callback sequence arguments, an uninitialized pointer in the referring_call_list can be passed to the kfree() function. This memory corruption vulnerability could allow a remote attacker to cause a denial of service by triggering the flaw during NFSv4.1 operations.
Statement
An uninitialized pointer bug in the NFSv4.1 callback sequence decoder can occur because decode_cb_sequence_args allocates csa_rclists without zeroing it and decode_rc_list leaves rcl_refcalls unset for a valid empty referring call list. A malicious or compromised NFSv4.1 server can cause the client to later pass stale slab contents to kfree during callback processing, which can crash the kernel and may be treated as a kernel memory corruption candidate. For the CVSS the PR:N is used because the attacker does not need privileges on the victim beyond network reachability as an NFS server endpoint already used by the client. The issue is network reachable through NFS callback processing, but practical exposure is usually limited to trusted storage or data center networks rather than the public Internet. Impact is at least denial of service via kernel crash.
Mitigation
Mitigation for this issue is either not available or the currently available options don't meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.
Common Vulnerability Scoring System (CVSS) Score Details
Info alert:Important note
CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).
The following CVSS metrics and score provided are preliminary and subject to review.
CVSS v3 Score Breakdown
| Red Hat | NVD | cve.org | |
|---|---|---|---|
| Base Score | 7.5 | N/A | 9.8 |
| Attack Vector | Network | N/A | Network |
| Attack Complexity | Low | N/A | Low |
| Privileges Required | None | N/A | None |
| User Interaction | None | N/A | None |
| Scope | Unchanged | N/A | Unchanged |
| Confidentiality | None | N/A | High |
| Integrity Impact | None | N/A | High |
| Availability Impact | High | N/A | High |
Vector
Red Hat: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
cve.org: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Understanding the Weakness (CWE)
Confidentiality,Integrity,Availability,Other
Technical Impact: Varies by Context; Read Application Data
Uninitialized variables usually contain junk, which can not be trusted for consistency. Depending on the context, uninitialized variables could lead to denial of service conditions, or modify control flow in unexpected ways. They could also contain sensitive information that could be leaked if the variable is used in output. In some cases, an attacker can "pre-initialize" the variable using previous actions - i.e., control the contents of the variable - which might enable code execution.
Availability
Technical Impact: Alter Execution Logic; Unexpected State
This can cause a race condition if a lock variable check passes when it should not.
Authorization,Other
Technical Impact: Varies by Context
Strings that are not initialized are especially dangerous, since many functions expect a null at the end -- and only at the end -- of a string.
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.