KernelScan.io

HIGH

rxrpc ProcFS Buffer Overflow

CVE-2026-31630

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI5.5MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: rxrpc: proc: size address buffers for %pISpc output The AF_RXRPC procfs helpers format local and remote socket addresses into fixed 50-byte stack buffers with "%pISpc". That is too small for the longest current-tree IPv6-with-port form the formatter can produce. In lib/vsprintf.c, the compressed IPv6 path uses a dotted-quad tail not only for v4mapped addresses, but also for ISATAP addresses via ipv6_addr_is_isatap(). As a result, a case such as [ffff:ffff:ffff:ffff:0:5efe:255.255.255.255]:65535 is possible with the current formatter. That is 50 visible characters, so 51 bytes including the trailing NUL, which does not fit in the existing char[50] buffers used by net/rxrpc/proc.c. Size the buffers from the formatter's maximum textual form and switch the call sites to scnprintf(). Changes since v1: - correct the changelog to cite the actual maximum current-tree case explicitly - frame the proof around the ISATAP formatting path instead of the earlier mapped-v4 example

02

Engine v0.2.0

Risk summary

Local users with low privileges can trigger a stack buffer overflow in the AF_RXRPC procfs interface when IPv6 addresses are formatted. This can cause kernel crashes and denial of service on systems using RxRPC networking protocol.

Affectednet/rxrpc/proc.c (AF_RXRPC networking)

Vulnerability analysis

The vulnerability occurs in net/rxrpc/proc.c where IPv6 socket addresses are formatted into fixed 50-byte stack buffers using sprintf() with the %pISpc format specifier. The maximum IPv6 address representation with port can be 51 bytes (including null terminator) for cases like '[ffff:ffff:ffff:ffff:0:5efe:255.255.255.255]:65535', causing a one-byte stack buffer overflow. The fix increases buffer size to RXRPC_PROC_ADDRBUF_SIZE (64 bytes) and replaces sprintf() with scnprintf() for bounds checking. Attack surface is local-only, requiring access to procfs entries under /proc/net/rxrpc/ and the presence of IPv6-enabled RxRPC connections.

03

BranchFixed inPatch commit
5.105.10.258386c86412608
5.155.15.209235b2115de89
6.16.1.175625af53a1564
6.186.18.23db297c78ce53
6.196.19.1310ebed83f9f6
mainline7.0a44ce6aa2efb