{"id":24441,"date":"2026-09-16T20:32:19","date_gmt":"2026-09-16T12:32:19","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89784"},"modified":"2026-09-16T20:32:19","modified_gmt":"2026-09-16T12:32:19","slug":"cve-2026-89784","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89784","title":{"rendered":"CVE-2026-89784 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: check rpc_soc"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>SUNRPC: check rpc_sockaddr2uaddr() return value in rpcb_register_inet4\/6<\/p>\n<p>rpcb_register_inet4() and rpcb_register_inet6() store the result of<br \/>\nrpc_sockaddr2uaddr() into map-&gt;r_addr without checking it for NULL.<br \/>\nrpc_sockaddr2uaddr() returns NULL when its final kstrdup() fails, and<br \/>\nthe unchecked NULL is then carried into the synchronous RPCBPROC_SET<br \/>\nencode path: rpcb_register_call() -&gt; rpc_call_sync() -&gt;<br \/>\nrpcb_enc_getaddr() -&gt; encode_rpcb_string(), whose first statement is<br \/>\nstrlen(string), dereferencing NULL and oopsing the kernel.<\/p>\n<p>The crash reproduces under failslab on v6.12; with KASAN the NULL<br \/>\ndereference surfaces as a fault on the shadow of address zero:<\/p>\n<p> Oops: general protection fault, probably for non-canonical address<br \/>\n       0xdffffc0000000000 [#1] PREEMPT SMP KASAN<br \/>\n RIP: 0010:strlen (lib\/string.c:409)<br \/>\n Call Trace:<br \/>\n  encode_rpcb_string (net\/sunrpc\/rpcb_clnt.c:890)<br \/>\n  rpcb_enc_getaddr (net\/sunrpc\/rpcb_clnt.c:910)<br \/>\n  rpcauth_wrap_req_encode (net\/sunrpc\/auth.c:745)<br \/>\n  call_encode (net\/sunrpc\/clnt.c:1966)<br \/>\n  __rpc_execute (net\/sunrpc\/sched.c:952)<br \/>\n  rpc_run_task (net\/sunrpc\/clnt.c:1243)<br \/>\n  rpc_call_sync (net\/sunrpc\/clnt.c:1272)<br \/>\n  rpcb_v4_register (net\/sunrpc\/rpcb_clnt.c:500)<br \/>\n  svc_generic_rpcbind_set<br \/>\n  nfsd_rpcbind_set<br \/>\n  svc_register<br \/>\n  svc_setup_socket<br \/>\n  svc_addsock<br \/>\n  write_ports<br \/>\n  nfsctl_transaction_write<br \/>\n  vfs_write<\/p>\n<p>The crash is reachable when an in-kernel RPC service (nfsd, lockd,<br \/>\nnfs-callback) registers with the local rpcbind under enough memory<br \/>\npressure for the small GFP_KERNEL kstrdup() in rpc_sockaddr2uaddr() to<br \/>\nfail. The asynchronous getport path already handles this exact failure<br \/>\nmode by returning -ENOMEM; only the two register helpers omit the check.<\/p>\n<p>Mirror that handling: bail out with -ENOMEM when rpc_sockaddr2uaddr()<br \/>\nreturns NULL, before the address is fed into the encoder.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>SUNRPC: check rpc_sockaddr2uaddr() return value in rpcb_register_inet4\/6<\/p>\n<p>rpcb_register_inet4() and rpcb_register_inet6() store the<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24441","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=24441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}