CVE-2026-53111
NoneCVSS
—
EPSS
0.1%
Published
Jun 24, 2026
CISA due date
—
Cloudanix analysis
A local user or workload may be able to crash a vulnerable Linux system by triggering a bug in the kernel’s packet-processing test feature.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This is a Linux kernel denial-of-service flaw in the BPF skb test-run path. When a BPF program executed through bpf_prog_test_run_skb invokes the lightweight tunnel encapsulation helper path, bpf_lwt_xmit_push_encap / bpf_lwt_push_ip_encap can dereference skb_dst(skb)->dev even though the test-created skb may not have skb->_skb_refdst initialized. The resulting NULL pointer dereference occurs in kernel mode and can trigger an oops or panic, depending on kernel configuration, causing local system instability or a crash. The vulnerability is not known to provide code execution or privilege escalation based on the available information.
Why it matters to the business
Successful exploitation can crash affected Linux systems or disrupt workloads running on them, creating availability risk for servers, container hosts, CI systems, appliances, and platforms that allow BPF program loading or BPF test execution. Risk is reduced by the currently low EPSS score, lack of known public exploitation, and absence from the CISA KEV catalog, but systems exposing BPF functionality to untrusted local users or workloads should still prioritize remediation because kernel crashes can cause service outages.
How an attack unfolds
An attacker needs local ability to interact with the BPF syscall and load or test-run an eligible BPF program. They craft a BPF program or test-run input that reaches the skb-based BPF test execution path and invokes the lightweight tunnel IP encapsulation helper. In the vulnerable kernel path, the skb created for test execution lacks an initialized destination reference, but the helper assumes skb_dst(skb)->dev is valid while calculating required headroom. That invalid assumption leads to a NULL pointer dereference in kernel space, producing an oops and potentially a full system panic or reboot if panic-on-oops or similar hardening settings are enabled. There is no current indication of ransomware use, named threat actor exploitation, or mature public exploit activity.
How to fix it
Upgrade to a Linux kernel version from the relevant distribution or upstream stable branch that includes the fix for the BPF test-run skb destination initialization issue. Where immediate patching is not possible, reduce exposure by disabling unprivileged BPF if not required, restricting access to the bpf syscall, limiting CAP_BPF and CAP_SYS_ADMIN to trusted workloads only, and preventing untrusted containers from receiving elevated BPF-related capabilities. Consider enforcing seccomp, LSM, or container runtime policies that block bpf syscall use for workloads that do not explicitly need it. If kernel panic-on-oops is enabled on production systems, evaluate whether the operational risk is acceptable because this flaw can turn a kernel oops into a full reboot.
How to confirm the fix worked
Confirm the running kernel package includes the vendor fix by checking the installed kernel version and distribution advisory status, then reboot into the patched kernel. Verify that older vulnerable kernels are not still booted by comparing the installed package version with uname -a output. Validate exposure controls by checking whether unprivileged BPF is disabled, whether seccomp or LSM policy blocks the bpf syscall for untrusted services, and whether containers lack CAP_BPF and CAP_SYS_ADMIN unless explicitly required. On test systems only, kernel maintainers may confirm the fix by running the relevant BPF selftest or reproducer and verifying that bpf_prog_test_run_skb no longer triggers an oops in bpf_lwt_push_ip_encap.
Typical attack path
- Gain local code execution or shell access on a Linux system where BPF program loading or BPF test execution is permitted.
- Check whether unprivileged BPF is enabled or whether the attacker has sufficient privileges such as CAP_BPF, CAP_SYS_ADMIN, or equivalent container/runtime permissions.
- Load or prepare a BPF program using skb test-run functionality.
- Trigger a path that invokes the lightweight tunnel encapsulation helper, such as bpf_lwt_push_ip_encap, during bpf_prog_test_run_skb execution.
- Cause the kernel to dereference a NULL skb destination/device pointer.
- Crash the kernel or destabilize the host, resulting in denial of service.
How to detect it
Review kernel logs, persistent journal entries, crash dumps, and monitoring events for kernel oops, panic, or reboot activity involving the BPF skb test-run and lightweight tunnel encapsulation functions. Useful sources include dmesg output, /var/log/kern.log, /var/log/messages, systemd journal kernel facility logs, kdump/vmcore artifacts, crash reporting systems, EDR telemetry for bpf syscall activity, auditd syscall logs if bpf syscall auditing is enabled, and container runtime logs showing privileged or BPF-capable workloads. Focus on stack traces containing bpf_lwt_push_ip_encap, bpf_lwt_xmit_push_encap, bpf_prog_test_run_skb, bpf_test_run, __sys_bpf, or __x64_sys_bpf near a NULL pointer dereference. A matching crash is not definitive proof of malicious exploitation, as the issue can also be triggered by testing or fuzzing, so correlate with local user activity, recently executed proof-of-concept binaries, suspicious BPF loaders, unexpected privileged containers, and repeated crash attempts.
- BUG: kernel NULL pointer dereference, address: 0000000000000000
- RIP: 0010:bpf_lwt_push_ip_encap
- bpf_lwt_push_ip_encap+0x
- bpf_lwt_xmit_push_encap+0x
- bpf_prog_test_run_skb+0x
- bpf_test_run+0x
- __sys_bpf+0x
- __x64_sys_bpf+0x
- Oops: 0000
- supervisor read access in kernel mode
- Comm: poc
- /var/log/kern.log
- /var/log/messages
- /proc/sys/kernel/unprivileged_bpf_disabled
What your security team should do
- Patch affected Linux kernels through the normal OS or appliance vendor channel and ensure systems are rebooted into the fixed kernel.
- Prioritize internet-facing infrastructure, multi-tenant hosts, container platforms, CI runners, developer workstations, and systems where untrusted users can execute local code.
- Disable unprivileged BPF where it is not required, for example by setting kernel.unprivileged_bpf_disabled according to distribution support and operational requirements.
- Restrict CAP_BPF, CAP_SYS_ADMIN, privileged containers, and direct bpf syscall access to trusted administrative workloads only.
- Add monitoring for kernel oops or panic events referencing bpf_lwt_push_ip_encap, bpf_lwt_xmit_push_encap, bpf_prog_test_run_skb, or __sys_bpf.
- Review recent host crashes and unexpected reboots for matching kernel traces to determine whether exploitation or accidental triggering occurred.
- Track distribution advisories because fixed versions vary by kernel branch and vendor backporting policy.
The record
In the Linux kernel, the following vulnerability has been resolved: bpf: test_run: Fix the null pointer dereference issue in bpf_lwt_xmit_push_encap The bpf_lwt_xmit_push_encap helper needs to access skb_dst(skb)->dev to calculate the needed headroom: err = skb_cow_head(skb, len + LL_RESERVED_SPACE(skb_dst(skb)->dev)); But skb->_skb_refdst may not be initialized when the skb is set up by bpf_prog_test_run_skb function. Executing bpf_lwt_push_ip_encap function in this scenario will trigger null pointer dereference, causing a kernel crash as Yinhao reported: [ 105.186365] BUG: kernel NULL pointer dereference, address: 0000000000000000 [ 105.186382] #PF: supervisor read access in kernel mode [ 105.186388] #PF: error_code(0x0000) - not-present page [ 105.186393] PGD 121d3d067 P4D 121d3d067 PUD 106c83067 PMD 0 [ 105.186404] Oops: 0000 [#1] PREEMPT SMP NOPTI [ 105.186412] CPU: 3 PID: 3250 Comm: poc Kdump: loaded Not tainted 6.19.0-rc5 #1 [ 105.186423] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 105.186427] RIP: 0010:bpf_lwt_push_ip_encap+0x1eb/0x520 [ 105.186443] Code: 0f 84 de 01 00 00 0f b7 4a 04 66 85 c9 0f 85 47 01 00 00 31 c0 5b 5d 41 5c 41 5d 41 5e c3 cc cc cc cc 48 8b 73 58 48 83 e6 fe <48> 8b 36 0f b7 be ec 00 00 00 0f b7 b6 e6 00 00 00 01 fe 83 e6 f0 [ 105.186449] RSP: 0018:ffffbb0e0387bc50 EFLAGS: 00010246 [ 105.186455] RAX: 000000000000004e RBX: ffff94c74e036500 RCX: ffff94c74874da00 [ 105.186460] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff94c74e036500 [ 105.186463] RBP: 0000000000000001 R08: 0000000000000002 R09: 0000000000000000 [ 105.186467] R10: ffffbb0e0387bd50 R11: 0000000000000000 R12: ffffbb0e0387bc98 [ 105.186471] R13: 0000000000000014 R14: 0000000000000000 R15: 0000000000000002 [ 105.186484] FS: 00007f166aa4d680(0000) GS:ffff94c8b7780000(0000) knlGS:0000000000000000 [ 105.186490] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 105.186494] CR2: 0000000000000000 CR3: 000000015eade001 CR4: 0000000000770ee0 [ 105.186499] PKRU: 55555554 [ 105.186502] Call Trace: [ 105.186507] <TASK> [ 105.186513] bpf_lwt_xmit_push_encap+0x2b/0x40 [ 105.186522] bpf_prog_a75eaad51e517912+0x41/0x49 [ 105.186536] ? kvm_clock_get_cycles+0x18/0x30 [ 105.186547] ? ktime_get+0x3c/0xa0 [ 105.186554] bpf_test_run+0x195/0x320 [ 105.186563] ? bpf_test_run+0x10f/0x320 [ 105.186579] bpf_prog_test_run_skb+0x2f5/0x4f0 [ 105.186590] __sys_bpf+0x69c/0xa40 [ 105.186603] __x64_sys_bpf+0x1e/0x30 [ 105.186611] do_syscall_64+0x59/0x110 [ 105.186620] entry_SYSCALL_64_after_hwframe+0x76/0xe0 [ 105.186649] RIP: 0033:0x7f166a97455d Temporarily add the setting of skb->_skb_refdst before bpf_test_run to resolve the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|