CVE-2023-53360: NFSv4.2: Rework scratch handling for READ_PLUS (again)
In the Linux kernel, the following vulnerability has been resolved:
NFSv4.2: Rework scratch handling for READ_PLUS (again)
I found that the read code might send multiple requests using the same
nfs_pgio_header, but nfs4_proc_read_setup() is only called once. This is
how we ended up occasionally double-freeing the scratch buffer, but also
means we set a NULL pointer but non-zero length to the xdr scratch
buffer. This results in an oops the first time decoding needs to copy
something to scratch, which frequently happens when decoding READ_PLUS
hole segments.
I fix this by moving scratch handling into the pageio read code. I
provide a function to allocate scratch space for decoding read replies,
and free the scratch buffer when the nfs_pgio_header is freed.
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue can crash affected systems when they use NFSv4.2 READ_PLUS handling. It is an availability risk, not a confidentiality or integrity issue in the provided scoring. Exploitation requires local privileges, so urgency is highest for Linux hosts where local users or workloads can trigger NFS reads.
Executive priority
Treat this as a moderate-priority reliability issue. Patch affected Linux systems during the next practical maintenance window, sooner for shared servers, multi-user systems, or environments where local workloads can trigger NFS client reads.
Technical view
The flaw is a double-free and scratch-buffer state bug in Linux NFSv4.2 READ_PLUS reply decoding. Reused nfs_pgio_header objects could leave a NULL scratch pointer with a non-zero length, causing a kernel oops during READ_PLUS hole segment decoding. The fix moves scratch allocation and freeing into pageio read handling.
Likely exposure
Exposure is limited to affected Linux kernel versions and systems using NFSv4.2 client functionality. The source lists Linux kernel versions including 6.4, 6.4.16, 6.5.3, and 6.6 as affected, but distribution-specific package status is not provided.
Exploitation context
The CVSS vector is local, low complexity, low privileges, and no user interaction, with high availability impact. The source bundle does not report active exploitation, and KEV status is false. No remote unauthenticated exploitation is supported by the provided evidence.
Researcher notes
Evidence supports an NFSv4.2 client-side kernel availability flaw tied to READ_PLUS hole segment decoding and scratch-buffer lifecycle handling. The supplied data does not define distro package boundaries, exploit availability, or operational workarounds, so validation should focus on kernel version, NFSv4.2 use, and vendor fixed builds.
Mitigation direction
Apply vendor kernel updates containing the referenced upstream stable fixes.
Prioritize Linux systems using NFSv4.2 mounts or NFS-heavy workloads.
Check distribution advisories for exact fixed package versions.
If patching is delayed, consult vendor guidance for temporary NFS client risk reduction.
Validation and detection
Inventory Linux kernel versions across servers, workstations, and appliances.
Identify hosts using NFSv4.2 client mounts or related workloads.
Review kernel logs for oops events during NFS READ_PLUS activity.
Compare installed kernel packages against vendor advisories and upstream stable commits.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-415: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.