net: ipv6: flowlabel: defer exclusive option free until RCU teardown
In the Linux kernel, the following vulnerability has been resolved: net: ipv6: flowlabel: defer exclusive option free until RCU teardown `ip6fl_seq_show()` walks the global flowlabel hash under the seq-file RCU read-side lock and prints `fl->opt->opt_nflen` when an option block is present. Exclusive flowlabels currently free `fl->opt` as soon as `fl->users` drops to zero in `fl_release()`. However, the surrounding `struct ip6_flowlabel` remains visible in the global hash table until later garbage collection removes it and `fl_free_rcu()` finally tears it down. A concurrent `/proc/net/ip6_flowlabel` reader can therefore race that early `kfree()` and dereference freed option state, triggering a crash in `ip6fl_seq_show()`. Fix this by keeping `fl->opt` alive until `fl_free_rcu()`. That matches the lifetime already required for the enclosing flowlabel while readers can still reach it under RCU.
CVE-2026-31680
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: cve:CVE-2026-31680
Linux
Source reference: /containers/cna/affected/0/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
Linux
Source reference: /containers/cna/affected/1/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "d3aedd5ebd4b0b925b0bcda548066803e1318499",
"lessThan": "4b6798024f7b2d535f3db1002c760143cdbd1bd3",
"versionType": "git"
},
{
"status": "affected",
"version": "d3aedd5ebd4b0b925b0bcda548066803e1318499",
"lessThan": "3c54b66c83fb8fcbde8e6a7bf90b65856e39f827",
"versionType": "git"
},
{
"status": "affected",
"version": "d3aedd5ebd4b0b925b0bcda548066803e1318499",
"lessThan": "5a6b15f861b7c1304949e3350d23490a5fe429fd",
"versionType": "git"
},
{
"status": "affected",
"version": "d3aedd5ebd4b0b925b0bcda548066803e1318499",
"lessThan": "6c7fbdb8ffde6413640de7cfbd7c976c353e89f8",
"versionType": "git"
},
{
"status": "affected",
"version": "d3aedd5ebd4b0b925b0bcda548066803e1318499",
"lessThan": "8027964931785cb73d520ac70a342a3dc16c249b",
"versionType": "git"
},
{
"status": "affected",
"version": "d3aedd5ebd4b0b925b0bcda548066803e1318499",
"lessThan": "414726b69921fe6355ae453f5b35e68dd078342a",
"versionType": "git"
},
{
"status": "affected",
"version": "d3aedd5ebd4b0b925b0bcda548066803e1318499",
"lessThan": "572ce62778519a7d4d1c15f55dd2e45a474133c4",
"versionType": "git"
},
{
"status": "affected",
"version": "d3aedd5ebd4b0b925b0bcda548066803e1318499",
"lessThan": "9ca562bb8e66978b53028fa32b1a190708e6a091",
"versionType": "git"
}
],
"programFiles": [
"net/ipv6/ip6_flowlabel.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "3.9"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "3.9",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "5.10.253",
"versionType": "semver",
"lessThanOrEqual": "5.10.*"
},
{
"status": "unaffected",
"version": "5.15.203",
"versionType": "semver",
"lessThanOrEqual": "5.15.*"
},
{
"status": "unaffected",
"version": "6.1.168",
"versionType": "semver",
"lessThanOrEqual": "6.1.*"
},
{
"status": "unaffected",
"version": "6.6.134",
"versionType": "semver",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.12.81",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.22",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "6.19.12",
"versionType": "semver",
"lessThanOrEqual": "6.19.*"
},
{
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"net/ipv6/ip6_flowlabel.c"
],
"defaultStatus": "affected"
}
]- Related CVEs
- CVE-2026-31680
Source reference:
/cveMetadata/cveId
Publisher severity
high
Source reference: /containers/cna/metrics
- Event
- #39953 · Revision 1
- Added to Heist Feed
- Publisher date