CVE-2026-53391CWE-476

CVE-2026-53391

High · published July 19, 2026

CVSS v3.1
7.5
EPSS
1%
Percentile
43.1
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00517 · 43.1th percentile
Weakness
CWE-476 · NULL Pointer Dereference
Published
2026-07-19T16:16Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 4.0, < 5.15.2115.15.211
linux/linux_kernel≥ 5.16, < 6.1.1776.1.177
linux/linux_kernel≥ 6.2, < 6.6.1446.6.144
linux/linux_kernel≥ 6.7, < 6.12.956.12.95
linux/linux_kernel≥ 6.13, < 6.18.386.18.38
linux/linux_kernel≥ 6.19, < 7.1.37.1.3
References (7)
EPSS history
Timeline
  • 19 JUL 12:01Z
    NFSv4/pNFS: reject zero-length r_addr in nfs4_decode_mp_ds_addr
    cvelistv5