bpf: Reset register bounds before narrowing retval range in check_mem_access()
In the Linux kernel, the following vulnerability has been resolved: bpf: Reset register bounds before narrowing retval range in check_mem_access() When the BPF verifier processes a context load of an LSM hook return value, it calls __mark_reg_s32_range() to narrow the register to the hook's valid range. However, __mark_reg_s32_range() intersects the new range with the register's existing bounds using max_t()/min_t() rather than replacing them. If the destination register carries stale bounds from a prior instruction (e.g. BPF_MOV64_IMM), the intersection can produce a range narrower than reality. The verifier then believes it knows the register's exact value, while at runtime the actual hook return value is loaded, creating a verifier/runtime mismatch that can be used to bypass BPF memory safety checks. The else branch already calls mark_reg_unknown() to reset register state before any narrowing. Apply the same reset in the is_retval path so stale bounds are cleared before __mark_reg_s32_range() intersects.
CVE-2026-72111
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-72111
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": "5d99e198be279045e6ecefe220f5c52f8ce9bfd5",
"lessThan": "bde92f65042ec14389782dd223f706bf6b59ce5d",
"versionType": "git"
},
{
"status": "affected",
"version": "5d99e198be279045e6ecefe220f5c52f8ce9bfd5",
"lessThan": "0993dc5fc619c0b25ab1310cb11d65e78351c0fe",
"versionType": "git"
},
{
"status": "affected",
"version": "5d99e198be279045e6ecefe220f5c52f8ce9bfd5",
"lessThan": "5a55f9aecc08990940e70f0c7048a80850c5a16a",
"versionType": "git"
},
{
"status": "affected",
"version": "5d99e198be279045e6ecefe220f5c52f8ce9bfd5",
"lessThan": "5e0b273e0a62cc04ec338c7b502797c66c2ed42a",
"versionType": "git"
},
{
"status": "affected",
"version": "1050727d83e70449991c29dd1cf29fe936a63da3",
"versionType": "git"
},
{
"status": "affected",
"version": "27ca3e20fe80be85a92b10064dfeb56cb2564b1c",
"versionType": "git"
},
{
"status": "affected",
"version": "6.10.13",
"lessThan": "6.11",
"versionType": "semver"
},
{
"status": "affected",
"version": "6.11.2",
"lessThan": "6.12",
"versionType": "semver"
}
],
"programFiles": [
"kernel/bpf/verifier.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "6.12",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver",
"lessThanOrEqual": "7.1.*"
},
{
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"kernel/bpf/verifier.c"
],
"defaultStatus": "affected"
}
]- Related CVEs
- CVE-2026-72111
Source reference:
/cveMetadata/cveId
Publisher severity
high
Source reference: /containers/cna/metrics
- Event
- #32943 · Revision 1
- Added to Heist Feed
- Publisher date