CVE-2026-53391
NFSv4/pNFS: reject zero-length r_addr in nfs4_decode_mp_ds_addr
Description
In the Linux kernel, the following vulnerability has been resolved: NFSv4/pNFS: reject zero-length r_addr in nfs4_decode_mp_ds_addr nfs4_decode_mp_ds_addr() decodes the r_netid and r_addr opaques of a netaddr4 from a GETDEVICEINFO multipath-DS body, then immediately calls strrchr(buf, '.') to locate the port separator. Both decodes use xdr_stream_decode_string_dup(), and the current code checks only "nlen < 0" / "rlen < 0" before dereferencing the returned string. When the on-wire opaque has length zero, xdr_stream_decode_opaque_inline() returns 0 and xdr_stream_decode_string_dup() falls through to its "*str = NULL; return ret" tail, leaving buf NULL with a return value of 0. The "< 0" check does not catch this, and the next line is strrchr(NULL, '.'), a kernel NULL pointer dereference reachable from any pNFS-flexfile client mounted against a malicious or compromised metadata server. Reject the zero-length cases explicitly so the decoder fails with -EBADMSG (treated as a malformed GETDEVICEINFO body) instead of panicking the client.
INFO
Published Date :
July 19, 2026, 12:16 p.m.
Last Modified :
Aug. 17, 2026, 5:17 a.m.
Remotely Exploit :
Yes !
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Update the Linux kernel to a patched version.
- Ensure NFSv4/pNFS client is running a fixed kernel.
- Verify multipath-DS address decoding.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-53391.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-53391 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-53391
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-53391 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-53391 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 17, 2026
Action Type Old Value New Value Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '76b94cbd32aacf36a641956385a852635c6802b9', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': 'c8e4e0c701d0192a2efb6df059c0f9e19678c23d', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '6c344fff2feff9d4d716d8e4ad40e9b5040ee5ea', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '427ab81a811dab4bca9d19f82eec5847ae42646e', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '012d37a568bfbb2c9686f03ade75560bc7139956', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '30aae62e50b4e074a90a9a5e15246548fbdc1182', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '41fe0f7b84f0cb822ae10ab08592996a592b2a25', 'versionType': 'git'}], 'programFiles': ['fs/nfs/pnfs_nfs.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '4.0'}, {'status': 'unaffected', 'version': '0', 'lessThan': '4.0', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.15.211', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.177', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.144', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.95', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.38', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.3', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/nfs/pnfs_nfs.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '76b94cbd32aacf36a641956385a852635c6802b9', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': 'c8e4e0c701d0192a2efb6df059c0f9e19678c23d', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '6c344fff2feff9d4d716d8e4ad40e9b5040ee5ea', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '427ab81a811dab4bca9d19f82eec5847ae42646e', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '012d37a568bfbb2c9686f03ade75560bc7139956', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '30aae62e50b4e074a90a9a5e15246548fbdc1182', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '41fe0f7b84f0cb822ae10ab08592996a592b2a25', 'versionType': 'git'}], 'programFiles': ['fs/nfs/pnfs_nfs.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '4.0'}, {'status': 'unaffected', 'version': '0', 'lessThan': '4.0', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.15.211', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.177', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.144', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.95', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.38', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.3', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/nfs/pnfs_nfs.c'], 'defaultStatus': 'affected'}] -
Initial Analysis by [email protected]
Jul. 29, 2026
Action Type Old Value New Value Added CWE CWE-476 Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.16 up to (excluding) 6.1.177 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.2 up to (excluding) 6.6.144 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.7 up to (excluding) 6.12.95 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.13 up to (excluding) 6.18.38 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.19 up to (excluding) 7.1.3 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 4.0 up to (excluding) 5.15.211 Added Reference Type kernel.org: https://git.kernel.org/stable/c/012d37a568bfbb2c9686f03ade75560bc7139956 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/30aae62e50b4e074a90a9a5e15246548fbdc1182 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/41fe0f7b84f0cb822ae10ab08592996a592b2a25 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/427ab81a811dab4bca9d19f82eec5847ae42646e Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/6c344fff2feff9d4d716d8e4ad40e9b5040ee5ea Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/76b94cbd32aacf36a641956385a852635c6802b9 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/c8e4e0c701d0192a2efb6df059c0f9e19678c23d Types: Patch -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jul. 20, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jul. 19, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '76b94cbd32aacf36a641956385a852635c6802b9', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': 'c8e4e0c701d0192a2efb6df059c0f9e19678c23d', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '6c344fff2feff9d4d716d8e4ad40e9b5040ee5ea', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '427ab81a811dab4bca9d19f82eec5847ae42646e', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '012d37a568bfbb2c9686f03ade75560bc7139956', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '30aae62e50b4e074a90a9a5e15246548fbdc1182', 'versionType': 'git'}, {'status': 'affected', 'version': '6b7f3cf96364eaf597940cb5c68a682894829915', 'lessThan': '41fe0f7b84f0cb822ae10ab08592996a592b2a25', 'versionType': 'git'}], 'programFiles': ['fs/nfs/pnfs_nfs.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '4.0'}, {'status': 'unaffected', 'version': '0', 'lessThan': '4.0', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.15.211', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.177', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.144', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.95', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.38', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.3', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/nfs/pnfs_nfs.c'], 'defaultStatus': 'affected'}] Added Description In the Linux kernel, the following vulnerability has been resolved: NFSv4/pNFS: reject zero-length r_addr in nfs4_decode_mp_ds_addr nfs4_decode_mp_ds_addr() decodes the r_netid and r_addr opaques of a netaddr4 from a GETDEVICEINFO multipath-DS body, then immediately calls strrchr(buf, '.') to locate the port separator. Both decodes use xdr_stream_decode_string_dup(), and the current code checks only "nlen < 0" / "rlen < 0" before dereferencing the returned string. When the on-wire opaque has length zero, xdr_stream_decode_opaque_inline() returns 0 and xdr_stream_decode_string_dup() falls through to its "*str = NULL; return ret" tail, leaving buf NULL with a return value of 0. The "< 0" check does not catch this, and the next line is strrchr(NULL, '.'), a kernel NULL pointer dereference reachable from any pNFS-flexfile client mounted against a malicious or compromised metadata server. Reject the zero-length cases explicitly so the decoder fails with -EBADMSG (treated as a malformed GETDEVICEINFO body) instead of panicking the client. Added Reference https://git.kernel.org/stable/c/012d37a568bfbb2c9686f03ade75560bc7139956 Added Reference https://git.kernel.org/stable/c/30aae62e50b4e074a90a9a5e15246548fbdc1182 Added Reference https://git.kernel.org/stable/c/41fe0f7b84f0cb822ae10ab08592996a592b2a25 Added Reference https://git.kernel.org/stable/c/427ab81a811dab4bca9d19f82eec5847ae42646e Added Reference https://git.kernel.org/stable/c/6c344fff2feff9d4d716d8e4ad40e9b5040ee5ea Added Reference https://git.kernel.org/stable/c/76b94cbd32aacf36a641956385a852635c6802b9 Added Reference https://git.kernel.org/stable/c/c8e4e0c701d0192a2efb6df059c0f9e19678c23d