CVE-2026-31630 (GCVE-0-2026-31630)
Vulnerability from cvelistv5 – Published: 2026-04-24 14:44 – Updated: 2026-04-24 14:44
VLAI?
Title
rxrpc: proc: size address buffers for %pISpc output
Summary
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
Severity ?
No CVSS data available.
Assigner
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Affected:
75b54cb57ca34cbe7a87c6ac757c55360a624590 , < db297c78ce537c9ac96f0eda9b25ad72c8caefa9
(git)
Affected: 75b54cb57ca34cbe7a87c6ac757c55360a624590 , < 10ebed83f9f6414af4e85bc85ffaeda7effdd874 (git) Affected: 75b54cb57ca34cbe7a87c6ac757c55360a624590 , < a44ce6aa2efb61fe44f2cfab72bb01544bbca272 (git) |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/rxrpc/proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "db297c78ce537c9ac96f0eda9b25ad72c8caefa9",
"status": "affected",
"version": "75b54cb57ca34cbe7a87c6ac757c55360a624590",
"versionType": "git"
},
{
"lessThan": "10ebed83f9f6414af4e85bc85ffaeda7effdd874",
"status": "affected",
"version": "75b54cb57ca34cbe7a87c6ac757c55360a624590",
"versionType": "git"
},
{
"lessThan": "a44ce6aa2efb61fe44f2cfab72bb01544bbca272",
"status": "affected",
"version": "75b54cb57ca34cbe7a87c6ac757c55360a624590",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/rxrpc/proc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.9"
},
{
"lessThan": "4.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.23",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.23",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.13",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "4.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nrxrpc: proc: size address buffers for %pISpc output\n\nThe AF_RXRPC procfs helpers format local and remote socket addresses into\nfixed 50-byte stack buffers with \"%pISpc\".\n\nThat is too small for the longest current-tree IPv6-with-port form the\nformatter can produce. In lib/vsprintf.c, the compressed IPv6 path uses a\ndotted-quad tail not only for v4mapped addresses, but also for ISATAP\naddresses via ipv6_addr_is_isatap().\n\nAs a result, a case such as\n\n [ffff:ffff:ffff:ffff:0:5efe:255.255.255.255]:65535\n\nis possible with the current formatter. That is 50 visible characters, so\n51 bytes including the trailing NUL, which does not fit in the existing\nchar[50] buffers used by net/rxrpc/proc.c.\n\nSize the buffers from the formatter\u0027s maximum textual form and switch the\ncall sites to scnprintf().\n\nChanges since v1:\n- correct the changelog to cite the actual maximum current-tree case\n explicitly\n- frame the proof around the ISATAP formatting path instead of the earlier\n mapped-v4 example"
}
],
"providerMetadata": {
"dateUpdated": "2026-04-24T14:44:46.606Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/db297c78ce537c9ac96f0eda9b25ad72c8caefa9"
},
{
"url": "https://git.kernel.org/stable/c/10ebed83f9f6414af4e85bc85ffaeda7effdd874"
},
{
"url": "https://git.kernel.org/stable/c/a44ce6aa2efb61fe44f2cfab72bb01544bbca272"
}
],
"title": "rxrpc: proc: size address buffers for %pISpc output",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-31630",
"datePublished": "2026-04-24T14:44:46.606Z",
"dateReserved": "2026-03-09T15:48:24.124Z",
"dateUpdated": "2026-04-24T14:44:46.606Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-31630",
"date": "2026-04-25",
"epss": "0.00017",
"percentile": "0.04073"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-31630\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-04-24T15:16:42.323\",\"lastModified\":\"2026-04-24T17:51:40.810\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nrxrpc: proc: size address buffers for %pISpc output\\n\\nThe AF_RXRPC procfs helpers format local and remote socket addresses into\\nfixed 50-byte stack buffers with \\\"%pISpc\\\".\\n\\nThat is too small for the longest current-tree IPv6-with-port form the\\nformatter can produce. In lib/vsprintf.c, the compressed IPv6 path uses a\\ndotted-quad tail not only for v4mapped addresses, but also for ISATAP\\naddresses via ipv6_addr_is_isatap().\\n\\nAs a result, a case such as\\n\\n [ffff:ffff:ffff:ffff:0:5efe:255.255.255.255]:65535\\n\\nis possible with the current formatter. That is 50 visible characters, so\\n51 bytes including the trailing NUL, which does not fit in the existing\\nchar[50] buffers used by net/rxrpc/proc.c.\\n\\nSize the buffers from the formatter\u0027s maximum textual form and switch the\\ncall sites to scnprintf().\\n\\nChanges since v1:\\n- correct the changelog to cite the actual maximum current-tree case\\n explicitly\\n- frame the proof around the ISATAP formatting path instead of the earlier\\n mapped-v4 example\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/10ebed83f9f6414af4e85bc85ffaeda7effdd874\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a44ce6aa2efb61fe44f2cfab72bb01544bbca272\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/db297c78ce537c9ac96f0eda9b25ad72c8caefa9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…