CVE-2026-64025·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: bpf, skmsg: fix verdict sk_data_ready racing with ktls rx sk_psock_strp_data_ready() already checks tls_sw_has_ctx_rx() and defers to psock->saved_data_ready when a TLS RX context is present, avoiding a conflict with the TLS strparser's ownership of the receive queue (commit e91de6afa81c, "bpf: Fix running sk_skb program types with ktls"). sk_psock_verdict_data_ready() has no equivalent guard. When a socket is inserted into a sockmap (BPF_SK_SKB_VERDICT) before TLS RX is configured, tls_sw_strparser_arm() saves sk_psock_verdict_data_ready as rx_ctx->saved_data_ready. On data arrival: tls_data_ready -> tls_strp_data_ready -> tls_rx_msg_ready -> saved_data_ready() = sk_psock_verdict_data_ready() -> tcp_read_skb() drains sk_receive_queue via __skb_unlink() without calling tcp_eat_skb(), so copied_seq is not advanced. tls_strp_msg_load() then finds tcp_inq() >= full_len (stale), calls tcp_recv_skb() on the now-empty queue, hits WARN_ON_ONCE(!first), and returns with rx_ctx->strp.anchor.frag_list pointing at a psock-owned (potentially freed) skb. tls_decrypt_sg() subsequently walks that frag_list: use-after-free. Apply the same fix as sk_psock_strp_data_ready(): if a TLS RX context is present, call psock->saved_data_ready (sock_def_readable) to wake recv() waiters and return immediately, leaving the receive queue untouched. TLS retains sole ownership of the queue and decrypts the record normally through tls_sw_recvmsg().
- Severity
- critical
- Software
- Kernel
- Fixed in
- 7.0.11
- Published
Affected versions
From: 6.19
Until: 7.0.11
Fixed in: 7.0.11
How to fix this CVE
Update your Linux kernel to version 7.0.11 or later to resolve a critical race condition between BPF socket message verdict handlers and kernel TLS receive operations. This vulnerability allows a use-after-free condition when sockets are managed by BPF programs while TLS is enabled, potentially leading to kernel memory corruption. Applying the kernel security patch immediately is essential for systems running affected versions.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your kernel version with `uname -r` and verify if it falls in the vulnerable range (6.19 to 7.0.10)
- Step 2: Verify if BPF socket programs (BPF_SK_SKB_VERDICT) are loaded by running `bpftool prog list | grep sk_skb`
- Step 3: Check if kernel TLS (ktls) is in use by inspecting `/sys/module/tls/` or running `lsmod | grep tls`
- Step 4: After patching, confirm the new kernel version with `uname -r` and verify it is 7.0.11 or later, then reboot if necessary
FAQ
What is CVE-2026-64025?
This vulnerability is a use-after-free condition in the Linux kernel that occurs when BPF socket message verdict handlers (BPF_SK_SKB_VERDICT) interact improperly with kernel TLS receive operations, allowing an attacker to access freed memory and potentially execute arbitrary kernel code.
Is CVE-2026-64025 being actively exploited?
No, according to CISA's Known Exploited Vulnerabilities (KEV) catalog, this vulnerability is not currently being actively exploited in the wild, and no public exploit code has been disclosed.
What versions of Kernel are affected by CVE-2026-64025?
Linux kernel versions 6.19 through 7.0.10 are affected; version 7.0.11 and later contain the security fix.
How do I check if my server is vulnerable to CVE-2026-64025?
Run `uname -r` to check your kernel version; if it reports a version between 6.19 and 7.0.10, your system is vulnerable. Additionally, confirm that BPF socket programs and kernel TLS are both in use on your system.
Does Defensia detect CVE-2026-64025?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2026-64025 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/1861d369efd62d67796563bf3e01fc22e5626f8b
- https://git.kernel.org/stable/c/7c8cf21bc4efb4af18d6096db3f8bd06d622251c
- https://git.kernel.org/stable/c/8a52139560f833c3975032e1f5762611e3a36d71
- https://git.kernel.org/stable/c/c9ea01768903ae47f210cd457af1dead6de7a9c3
- https://git.kernel.org/stable/c/ddf8029623a1af20e984c040e89ff918158397ab
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2026-64025. Free for 1 server.
Get started free