CVE-2025-21867·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: bpf, test_run: Fix use-after-free issue in eth_skb_pkt_type() KMSAN reported a use-after-free issue in eth_skb_pkt_type()[1]. The cause of the issue was that eth_skb_pkt_type() accessed skb's data that didn't contain an Ethernet header. This occurs when bpf_prog_test_run_xdp() passes an invalid value as the user_data argument to bpf_test_init(). Fix this by returning an error when user_data is less than ETH_HLEN in bpf_test_init(). Additionally, remove the check for "if (user_size > size)" as it is unnecessary. [1] BUG: KMSAN: use-after-free in eth_skb_pkt_type include/linux/etherdevice.h:627 [inline] BUG: KMSAN: use-after-free in eth_type_trans+0x4ee/0x980 net/ethernet/eth.c:165 eth_skb_pkt_type include/linux/etherdevice.h:627 [inline] eth_type_trans+0x4ee/0x980 net/ethernet/eth.c:165 __xdp_build_skb_from_frame+0x5a8/0xa50 net/core/xdp.c:635 xdp_recv_frames net/bpf/test_run.c:272 [inline] xdp_test_run_batch net/bpf/test_run.c:361 [inline] bpf_test_run_xdp_live+0x2954/0x3330 net/bpf/test_run.c:390 bpf_prog_test_run_xdp+0x148e/0x1b10 net/bpf/test_run.c:1318 bpf_prog_test_run+0x5b7/0xa30 kernel/bpf/syscall.c:4371 __sys_bpf+0x6a6/0xe20 kernel/bpf/syscall.c:5777 __do_sys_bpf kernel/bpf/syscall.c:5866 [inline] __se_sys_bpf kernel/bpf/syscall.c:5864 [inline] __x64_sys_bpf+0xa4/0xf0 kernel/bpf/syscall.c:5864 x64_sys_call+0x2ea0/0x3d90 arch/x86/include/generated/asm/syscalls_64.h:322 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xd9/0x1d0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f Uninit was created at: free_pages_prepare mm/page_alloc.c:1056 [inline] free_unref_page+0x156/0x1320 mm/page_alloc.c:2657 __free_pages+0xa3/0x1b0 mm/page_alloc.c:4838 bpf_ringbuf_free kernel/bpf/ringbuf.c:226 [inline] ringbuf_map_free+0xff/0x1e0 kernel/bpf/ringbuf.c:235 bpf_map_free kernel/bpf/syscall.c:838 [inline] bpf_map_free_deferred+0x17c/0x310 kernel/bpf/syscall.c:862 process_one_work kernel/workqueue.c:3229 [inline] process_scheduled_works+0xa2b/0x1b60 kernel/workqueue.c:3310 worker_thread+0xedf/0x1550 kernel/workqueue.c:3391 kthread+0x535/0x6b0 kernel/kthread.c:389 ret_from_fork+0x6e/0x90 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 CPU: 1 UID: 0 PID: 17276 Comm: syz.1.16450 Not tainted 6.12.0-05490-g9bb88c659673 #8 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-3.fc41 04/01/2014
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.13.5
- Published
- 2025-03-27
Affected versions
From: 6.13
Until: 6.13.5
Fixed in: 6.13.5
How to fix this CVE
Update your Linux kernel to version 6.13.5 or later to patch a use-after-free vulnerability in the BPF test infrastructure. This vulnerability allows local users with limited privileges to trigger memory safety issues when testing XDP programs with invalid Ethernet header configurations. Apply the kernel update immediately and reboot your system to ensure the fix is active.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Run 'uname -r' to check your current kernel version; vulnerable versions are 6.13.0 through 6.13.4
- Verify if BPF programs are used on your system with 'find /sys/kernel/debug/tracing -name 'bpf*' 2>/dev/null' or check for systemd-bpf services
- Search kernel logs for use-after-free warnings with 'journalctl -xe | grep -i 'use-after-free\|KMSAN' or dmesg | grep -i 'use-after-free'
- After updating, run 'uname -r' again and confirm the version is 6.13.5 or later, then reboot to load the patched kernel
FAQ
What is CVE-2025-21867?
CVE-2025-21867 is a use-after-free vulnerability in the Linux kernel's BPF test infrastructure that occurs when invalid Ethernet header data is passed to XDP program tests. This can allow a local attacker with limited privileges to read or corrupt kernel memory.
Is CVE-2025-21867 being actively exploited?
No, there is no evidence of active exploitation in the wild or public exploit code available. However, the vulnerability requires a patch due to its potential for local privilege escalation and information disclosure.
What versions of Kernel are affected by CVE-2025-21867?
Linux kernel versions 6.13.0 through 6.13.4 are affected. The vulnerability is fixed in version 6.13.5 and later.
How do I check if my server is vulnerable to CVE-2025-21867?
Run 'uname -r' to display your kernel version. If it shows 6.13.0, 6.13.1, 6.13.2, 6.13.3, or 6.13.4, your system is vulnerable and requires a kernel update.
Does Defensia detect CVE-2025-21867?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2025-21867 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/1a9e1284e87d59b1303b69d1808d310821d6e5f7
- https://git.kernel.org/stable/c/6b3d638ca897e099fa99bd6d02189d3176f80a47
- https://git.kernel.org/stable/c/972bafed67ca73ad9a56448384281eb5fd5c0ba3
- https://git.kernel.org/stable/c/d56d8a23d95100b65f40438639dd82db2af81c11
- https://git.kernel.org/stable/c/f615fccfc689cb48977d275ac2e391297b52392b
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2025-21867. Free for 1 server.
Get started free