CVEvulnerability
CVE-2026-72111
8.8 HIGH
Official page ↗
- Status
- Received
- Published
- 2026-08-15
- Last modified
- 2026-10-16
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- CVSS 3.1 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)
- 8.8 HIGH — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Description
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.
References
- https://git.kernel.org/stable/c/0993dc5fc619c0b25ab1310cb11d65e78351c0fe git.kernel.org
- https://git.kernel.org/stable/c/5a55f9aecc08990940e70f0c7048a80850c5a16a git.kernel.org
- https://git.kernel.org/stable/c/5e0b273e0a62cc04ec338c7b502797c66c2ed42a git.kernel.org
- https://git.kernel.org/stable/c/bde92f65042ec14389782dd223f706bf6b59ce5d git.kernel.org