CVE-2026-45903: bpf: Fix memory access flags in helper prototypes
In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix memory access flags in helper prototypes
After commit 37cce22dbd51 ("bpf: verifier: Refactor helper access type tracking"), the verifier started relying on the access type flags in helper function prototypes to perform memory access optimizations.
Currently, several helper functions utilizing ARGPTRTOMEM lack the corresponding MEMRDONLY or MEMWRITE flags. This omission causes the verifier to incorrectly assume that the buffer contents are unchanged across the helper call. Consequently, the verifier may optimize away subsequent reads based on this wrong assumption, leading to correctness issues.
For bpfgetstackprotorawtp, the original MEMRDONLY was incorrect since the helper writes to the buffer. Change it to ARGPTRTOUNINITMEM which correctly indicates write access to potentially uninitialized memory.
Similar issues were recently addressed for specific helpers in commit ac44dcc788b9 ("bpf: Fix verifier assumptions of bpfdpath's output buffer") and commit 2eb7648558a7 ("bpf: Specify access type of bpfsysctlgetname args").
Fix these prototypes by adding the correct memory access flags.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernel (BPF verifier/helper prototypes)to a version that resolves this vulnerability.Patch 37cce22dbd51 - Upgrade
Upgrade
Linux kernel (BPF verifier/helper prototypes)to a version that resolves this vulnerability.Patch ac44dcc788b9 - Upgrade
Upgrade
Linux kernel (BPF verifier/helper prototypes)to a version that resolves this vulnerability.Patch 2eb7648558a7
Event History
Frequently Asked Questions
Does exploitation require remote access or user interaction?
The CVSS vector rates the attack vector as local and user interaction as not required. It also requires low privileges.
What is the assessed security impact?
The CVSS assessment assigns high confidentiality and availability impacts, with no integrity impact. The reported issue stems from incorrect verifier assumptions that buffer contents remain unchanged across certain helper calls.