CVE-2026-72111

Summary

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.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux5d99e198be279045e6ecefe220f5c52f8ce9bfd5 < bde92f65042ec14389782dd223f706bf6b59ce5daffected
LinuxLinux5d99e198be279045e6ecefe220f5c52f8ce9bfd5 < 0993dc5fc619c0b25ab1310cb11d65e78351c0feaffected
LinuxLinux5d99e198be279045e6ecefe220f5c52f8ce9bfd5 < 5a55f9aecc08990940e70f0c7048a80850c5a16aaffected
LinuxLinux5d99e198be279045e6ecefe220f5c52f8ce9bfd5 < 5e0b273e0a62cc04ec338c7b502797c66c2ed42aaffected
LinuxLinux1050727d83e70449991c29dd1cf29fe936a63da3affected
LinuxLinux27ca3e20fe80be85a92b10064dfeb56cb2564b1caffected
LinuxLinux6.10.13 < 6.11affected
LinuxLinux6.11.2 < 6.12affected
LinuxLinux6.12affected
LinuxLinux0 < 6.12unaffected
LinuxLinux6.12.103 <= 6.12.*unaffected
LinuxLinux6.18.40 <= 6.18.*unaffected
LinuxLinux7.1.5 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References