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

SUNRPC: check rpc_sockaddr2uaddr() return value in rpcb_register_inet4/6

rpcb_register_inet4() and rpcb_register_inet6() store the result of
rpc_sockaddr2uaddr() into map->r_addr without checking it for NULL.
rpc_sockaddr2uaddr() returns NULL when its final kstrdup() fails, and
the unchecked NULL is then carried into the synchronous RPCBPROC_SET
encode path: rpcb_register_call() -> rpc_call_sync() ->
rpcb_enc_getaddr() -> encode_rpcb_string(), whose first statement is
strlen(string), dereferencing NULL and oopsing the kernel.

The crash reproduces under failslab on v6.12; with KASAN the NULL
dereference surfaces as a fault on the shadow of address zero:

Oops: general protection fault, probably for non-canonical address
0xdffffc0000000000 [#1] PREEMPT SMP KASAN
RIP: 0010:strlen (lib/string.c:409)
Call Trace:
encode_rpcb_string (net/sunrpc/rpcb_clnt.c:890)
rpcb_enc_getaddr (net/sunrpc/rpcb_clnt.c:910)
rpcauth_wrap_req_encode (net/sunrpc/auth.c:745)
call_encode (net/sunrpc/clnt.c:1966)
__rpc_execute (net/sunrpc/sched.c:952)
rpc_run_task (net/sunrpc/clnt.c:1243)
rpc_call_sync (net/sunrpc/clnt.c:1272)
rpcb_v4_register (net/sunrpc/rpcb_clnt.c:500)
svc_generic_rpcbind_set
nfsd_rpcbind_set
svc_register
svc_setup_socket
svc_addsock
write_ports
nfsctl_transaction_write
vfs_write

The crash is reachable when an in-kernel RPC service (nfsd, lockd,
nfs-callback) registers with the local rpcbind under enough memory
pressure for the small GFP_KERNEL kstrdup() in rpc_sockaddr2uaddr() to
fail. The asynchronous getport path already handles this exact failure
mode by returning -ENOMEM; only the two register helpers omit the check.

Mirror that handling: bail out with -ENOMEM when rpc_sockaddr2uaddr()
returns NULL, before the address is fed into the encoder.
Published: 2026-09-16
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service (kernel crash)
Action: Apply Patch
AI Analysis

Impact

In the Linux kernel the rpcb_register_inet4/6 functions omit a null‑check on the return value of rpc_sockaddr2uaddr(). When the helper fails to allocate memory, it returns NULL; this null pointer is later dereferenced in the RPCBPROC_SET encode routine. The kernel then oops, causing a general protection fault and a reboot. The failure can be triggered by running an in‑kernel RPC service such as nfsd, lockd, or nfs‑callback under memory pressure, which makes the small GFP_KERNEL kstrdup() fail.

Affected Systems

All Linux kernel implementations that contain the vulnerable rpcb_register_inet4/6 code are affected. The issue was reproduced on kernel v6.12 in the failslab test harness; any kernel version that uses the same code path is potentially impacted. The vulnerability is present in the generic Linux kernel, not tied to a specific vendor distribution.

Risk and Exploitability

The vulnerability causes a local denial of service through a kernel panic; no arbitrary code execution or remote privilege escalation is documented. Exploitation requires the attacker to cause the kernel to register an RPC endpoint while memory allocation fails, meaning the attack vector is local or via a component that can trigger memory pressure on the target. EPSS data is not available and the vulnerability is not listed in CISA KEV, indicating a lower public exposure, but the impact of a kernel crash remains severe. The risk is heightened on systems with high NFS load or limited memory, as they are more likely to reach the allocation failure state.

Generated by OpenCVE AI on September 16, 2026 at 14:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to a patched release that includes the null‑check in rpcb_register_inet4/6.
  • Monitor memory usage of RPC services (nfsd, lockd, nfs‑callback) and avoid conditions that apply excessive memory pressure on the system.
  • If an immediate kernel upgrade is not possible, reduce the number of active RPC services or temporarily disable rpcbind registration until the kernel can handle allocation failures safely.

Generated by OpenCVE AI on September 16, 2026 at 14:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 16 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-390
CWE-476

Wed, 16 Sep 2026 09:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: SUNRPC: check rpc_sockaddr2uaddr() return value in rpcb_register_inet4/6 rpcb_register_inet4() and rpcb_register_inet6() store the result of rpc_sockaddr2uaddr() into map->r_addr without checking it for NULL. rpc_sockaddr2uaddr() returns NULL when its final kstrdup() fails, and the unchecked NULL is then carried into the synchronous RPCBPROC_SET encode path: rpcb_register_call() -> rpc_call_sync() -> rpcb_enc_getaddr() -> encode_rpcb_string(), whose first statement is strlen(string), dereferencing NULL and oopsing the kernel. The crash reproduces under failslab on v6.12; with KASAN the NULL dereference surfaces as a fault on the shadow of address zero: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000 [#1] PREEMPT SMP KASAN RIP: 0010:strlen (lib/string.c:409) Call Trace: encode_rpcb_string (net/sunrpc/rpcb_clnt.c:890) rpcb_enc_getaddr (net/sunrpc/rpcb_clnt.c:910) rpcauth_wrap_req_encode (net/sunrpc/auth.c:745) call_encode (net/sunrpc/clnt.c:1966) __rpc_execute (net/sunrpc/sched.c:952) rpc_run_task (net/sunrpc/clnt.c:1243) rpc_call_sync (net/sunrpc/clnt.c:1272) rpcb_v4_register (net/sunrpc/rpcb_clnt.c:500) svc_generic_rpcbind_set nfsd_rpcbind_set svc_register svc_setup_socket svc_addsock write_ports nfsctl_transaction_write vfs_write The crash is reachable when an in-kernel RPC service (nfsd, lockd, nfs-callback) registers with the local rpcbind under enough memory pressure for the small GFP_KERNEL kstrdup() in rpc_sockaddr2uaddr() to fail. The asynchronous getport path already handles this exact failure mode by returning -ENOMEM; only the two register helpers omit the check. Mirror that handling: bail out with -ENOMEM when rpc_sockaddr2uaddr() returns NULL, before the address is fed into the encoder.
Title SUNRPC: check rpc_sockaddr2uaddr() return value in rpcb_register_inet4/6
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-16T08:48:22.404Z

Reserved: 2026-09-11T19:38:34.766Z

Link: CVE-2026-89784

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-16T09:17:09.060

Modified: 2026-09-16T09:17:09.060

Link: CVE-2026-89784

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-16T14:30:10Z

Weaknesses
  • CWE-390

    Detection of Error Condition Without Action

  • CWE-476

    NULL Pointer Dereference