CVE-2026-53110: Linux s390x BPF JIT Zero-Extension Flaw – Local Privilege Escalation
A critical flaw exists in how the Linux kernel's BPF (Berkeley Packet Filter) just-in-time compiler handles function return values and arguments on IBM System z (s390x) processor architecture. The vulnerability stems from incomplete implementation of the s390x calling convention—specifically, the JIT compiler fails to properly zero-extend unsigned values in certain contexts, only implementing sign-extension. This mismatch between what the ABI requires and what the JIT delivers can lead to data corruption, privilege escalation, or system compromise when BPF programs interact with kernel functions. While exploitation requires local access, the impact is severe.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses (CWE)
- —
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-23
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: s390/bpf: Zero-extend bpf prog return values and kfunc arguments s390x ABI requires callers to zero-extend unsigned arguments and sign-extend signed arguments, and callees to zero-extend unsigned return values and sign-extend signed return values. s390 BPF JIT currently implements only sign extension. Fix this omission and implement zero extension too.
5 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The s390x ABI specifies that unsigned integers must be zero-extended and signed integers must be sign-extended both when passed as arguments to functions and when returned from functions. The BPF JIT compiler on s390 implements sign-extension correctly but omits zero-extension logic. When an unsigned value is returned from a BPF program or passed as an argument to a kernel function (kfunc), the high-order bits may contain stale data instead of being zeroed. This violates the calling convention and can cause the kernel to misinterpret the value, potentially corrupting memory structures or bypassing security checks that depend on precise value boundaries. The vulnerability affects any BPF program loaded on s390x systems that returns unsigned values or calls kernel functions with unsigned parameters.
Business impact
Organizations deploying IBM System z mainframes running Linux with BPF-enabled kernels face a local privilege escalation risk. An attacker with unprivileged user access can load malicious BPF programs that exploit the zero-extension gap to corrupt kernel memory, escalate privileges, or crash the system. This is particularly concerning in multi-tenant or cloud environments where BPF capabilities might be exposed to containers or untrusted workloads. The severity is heightened because BPF is increasingly used in observability, networking, and security tooling; a flaw in the JIT can undermine the reliability of these critical functions.
Affected systems
Linux kernel on s390x (IBM System z) architecture with BPF JIT enabled. The vulnerability is present in the kernel's arch/s390/net/bpf_jit_comp.c implementation. Any s390x system running a vulnerable kernel version and permitting BPF program loading (via bpf() syscall or eBPF capabilities) is affected. This includes mainframe Linux distributions and z/VM guests running Linux.
Exploitability
Exploitation requires local system access and the ability to load BPF programs (typically requiring CAP_BPF or CAP_SYS_ADMIN capability). The attacker would craft a BPF program that returns an unsigned value or invokes a kfunc with unsigned arguments, triggering the zero-extension flaw to corrupt a kernel data structure or bypass a security boundary. The attack surface is limited to privileged or capability-bearing users, but in containerized or cloud environments, that boundary may be lower than on traditional systems. No public exploit code is known at this time.
Remediation
Apply a kernel patch that implements proper zero-extension logic in the s390 BPF JIT compiler. The fix ensures that unsigned return values and unsigned function arguments are zero-extended according to the s390x ABI. Verify the patch is merged into your kernel version and recompile or update the kernel package.
Patch guidance
Consult your Linux distribution's security advisories and kernel update mechanism for the patched version. Mainframe distributions (Red Hat Enterprise Linux for z, SUSE Linux Enterprise Server for z) will provide kernel packages with the fix integrated. Verify against the vendor advisory that the specific kernel version you are running includes the commit that resolves the s390 BPF JIT zero-extension logic. Reboot to activate the patched kernel.
Detection guidance
Monitor for unexpected kernel crashes or memory corruption warnings on s390x systems with BPF enabled. Audit BPF program loading via auditd or eBPF monitoring tools to identify unusual program activity. Check kernel logs for signs of memory protections being triggered (e.g., KASAN, kmemleak alerts) which may indicate exploitation attempts. Review BPF program sources for suspicious unsigned return values or unsigned kfunc calls if you have kernel module or eBPF source visibility.
Why prioritize this
This vulnerability merits high priority remediation due to its CVSS 7.8 (HIGH) severity, local privilege escalation potential, and direct impact on memory safety. Although it requires local access, the consequence is complete system compromise. s390x systems in regulated industries (banking, government) or supporting critical infrastructure should be patched urgently. Organizations running untrusted BPF programs or multi-tenant Linux on z environments should treat this as critical.
Risk score, explained
The CVSS 3.1 score of 7.8 reflects a HIGH severity: the attack vector is Local (user-level access required), the complexity is Low (no special conditions), privilege escalation is needed (PR:L—CAP_BPF or CAP_SYS_ADMIN), user interaction is not required, scope is Unchanged, and the impact is High across Confidentiality, Integrity, and Availability. The score accurately reflects that this is a privilege-escalation flaw with severe kernel memory impact, offset only by the local-access requirement.
Frequently asked questions
Can this vulnerability be exploited remotely?
No. The vulnerability requires local system access and the ability to load BPF programs (CAP_BPF or CAP_SYS_ADMIN). Remote exploitation is not possible, though containerized or cloud environments may expose BPF capabilities more broadly than traditional deployments.
Does this affect all Linux systems or only s390x?
Only s390x (IBM System z) architecture is affected. The flaw is specific to the s390 BPF JIT compiler's implementation of the s390x ABI calling convention. Other architectures (x86, ARM) have correct zero-extension logic.
What should I do if I cannot patch immediately?
Restrict BPF program loading by disabling kernel.bpf_stats_enabled and auditing who has CAP_BPF or CAP_SYS_ADMIN. Consider disabling BPF entirely if not essential. Monitor logs for suspicious activity and prioritize patching as soon as possible.
Why is zero-extension important for the calling convention?
Unsigned integers are expected to have zero bits in the high-order positions. If the JIT fails to zero those bits, the kernel interprets stale data as part of the value, corrupting function behavior and potentially bypassing security checks that compare or validate unsigned values.
This analysis is provided for informational purposes and reflects the vulnerability details available as of the publication date. Security research and vulnerability information evolve; verify all patch versions, affected products, and remediation steps against official vendor advisories before implementation. SEC.co makes no warranty of completeness or accuracy and assumes no liability for actions taken in reliance on this information. Always test patches in a non-production environment before deployment. Source: NVD (public-domain), retrieved 2026-08-02. Analysis generated by SEC.co (claude-haiku-4-5).
Affected vendors
Related vulnerabilities
- CVE-2026-0270HIGHCortex XSOAR Path Traversal on Linux — Exploit Requirements & Patching Guide
- CVE-2026-0271HIGHPalo Alto Networks Prisma Access Agent Linux Privilege Escalation
- CVE-2026-10001HIGHChrome Sandbox Escape via PerformanceManager Use-After-Free
- CVE-2026-10002HIGHGoogle Chrome PDFium Use-After-Free Vulnerability (CVSS 8.8)
- CVE-2026-10003HIGHChrome Use-After-Free Code Execution Vulnerability Analysis
- CVE-2026-10006HIGHChrome WebAudio Race Condition Remote Code Execution
- CVE-2026-10007HIGHChrome Use-After-Free in SVG Arbitrary Code Execution (CVSS 8.8)
- CVE-2026-10009HIGHChrome Skia Integer Overflow Sandbox Escape – Patch Guidance