CVE-2026-72111

bpf: Reset register bounds before narrowing retval range in check_mem_access()

State
Published
Severity
8.8 High
Published
Aug 15, 2026
Updated
Oct 16, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.18.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 5d99e198be279045e6ecefe220f5c52f8ce9bfd5 to before bde92f65042ec14389782dd223f706bf6b59ce5dAffected
  • 5d99e198be279045e6ecefe220f5c52f8ce9bfd5 to before 0993dc5fc619c0b25ab1310cb11d65e78351c0feAffected
  • 5d99e198be279045e6ecefe220f5c52f8ce9bfd5 to before 5a55f9aecc08990940e70f0c7048a80850c5a16aAffected
  • 5d99e198be279045e6ecefe220f5c52f8ce9bfd5 to before 5e0b273e0a62cc04ec338c7b502797c66c2ed42aAffected
  • 1050727d83e70449991c29dd1cf29fe936a63da3Affected
  • 27ca3e20fe80be85a92b10064dfeb56cb2564b1cAffected
  • 6.10.13 to before 6.11Affected
  • 6.11.2 to before 6.12Affected
LinuxLinux
  • 6.12Affected
  • before 6.12Not affected
  • 6.12.103 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.