Executive brief
A vulnerability was identified in the Linux kernel's BPF verifier, a component responsible for ensuring that custom network and system programs run safely without crashing the operating system. Due to a logic error, the verifier might incorrectly approve a program that performs unsafe memory operations on network packets. If exploited, a local attacker could potentially gain unauthorized access to sensitive data or cause a complete system crash, impacting the reliability and security of the affected device.
Technical details
A vulnerability exists in the Linux kernel BPF verifier within the regsafe() function in kernel/bpf/verifier.c. The issue arises when comparing register states for packet pointers; specifically, if an old register state has a range marked as BEYOND_PKT_END while the current state has a different range, regsafe() may incorrectly return true. This causes the verifier to skip exploration of valid packet ranges, leading to incorrect state pruning. A local attacker with the ability to load BPF programs could exploit this to bypass verifier safety checks, potentially achieving arbitrary kernel memory access or a denial-of-service condition. The fix introduces explicit checks for special packet end markers to ensure states are not incorrectly considered equivalent.
Affected products
- Linux Linux Kernel 6d94e741a8ff to fixed versions
- Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP V3.1.5, V3.1.6
- Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP V3.1.5, V3.1.6
- Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP V3.1.5, V3.1.6
Timeline
- 2026-03-31: disclosed: Initial patch submitted by Alexei Starovoitov
- 2026-04-11: patched: Commits merged into various stable kernel branches
- 2026-05-01: advisory: CVE published
References
- https://git.kernel.org/stable/c/015a74476dc1ab6923d89f1ee009aaf43faa7185
- https://git.kernel.org/stable/c/37db6b9726d0bcf91cbdf9d63b558c50da49f968
- https://git.kernel.org/stable/c/7241da033fdc507b920e092dab1f97b945cb0370
- https://git.kernel.org/stable/c/8aebe18069394f4a79d2d82080a0f806da449996
- https://git.kernel.org/stable/c/a8502a79e832b861e99218cbd2d8f4312d62e225
- https://git.kernel.org/stable/c/b52f6d0ef7b308f9d05bbddb78749852f28e8e40
- https://git.kernel.org/stable/c/b99d82706bd1511bb875e3de7154698fd9215c99