CVE-2026-89700

CVE-2026-89700

published September 12, 2026

CVSS
—
EPSS
0%
Percentile
5.8
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

nfsd: validate sockaddr length per family in listener_set

nfsd_sock_nl_policy declares NFSD_A_SOCK_ADDR as a bare NLA_BINARY

attribute with no minimum length. A CAP_NET_ADMIN caller can send a

16-byte NFSD_A_SOCK_ADDR with sa_family=AF_INET6, causing a 12-byte

OOB read across three consumers (rpc_cmp_addr_port, svc_find_listener,

kernel_bind).

nfsd_nl_listener_set_doit() also parsed and validated each listener

entry inline in two separate loops, interleaved with mutating the

running listener configuration. The validation was duplicated, used an

open-coded "nla_len < sizeof(struct sockaddr)" check that was too short

for AF_INET6, and handled a malformed entry inconsistently depending on

which loop noticed it.

Add an nfsd_nl_validate_listeners() helper that walks the entire list

once and confirms each entry parses, carries both an address and a

transport name, and is long enough for its address family

(sizeof(struct sockaddr_in) for AF_INET, sizeof(struct sockaddr_in6)

for AF_INET6, -EAFNOSUPPORT otherwise). Call it before taking

nfsd_mutex or creating the serv, so a malformed request fails cleanly

with no side effects.

Since every entry is known valid by the time the two existing loops

run, drop the redundant presence and per-family length checks from

both, leaving only the nla_parse_nested() call needed to extract the

data.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00168 · 5.8th percentile
Published
2026-09-12T00:19Z
References (4)
EPSS history
Timeline
  • 13 SEP 03:23Z
    EPSS moved — → 0%
    epss
  • 11 SEP 19:46Z
    nfsd: validate sockaddr length per family in listener_set
    cvelistv5