Description
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().
Published: 2026-07-19
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free
Action: Immediate Patch
AI Analysis

Impact

The flaw occurs when a socket is inserted into a BPF socket map (BPF_SK_SKB_VERDICT) before its TLS receive context is configured. A missing guard in sk_psock_verdict_data_ready() races with TLS strparser logic, draining the receive queue without advancing the copy sequence number. The subsequent TLS decryption pathway then processes a stale, freed socket buffer, causing a kernel use‑after‑free condition that can corrupt memory or crash the system. An attacker who can load a custom BPF program that manipulates socket maps or inject data into a TLS connection can trigger this race, potentially leading to kernel corruption, denial of service, or privilege escalation.

Affected Systems

All Linux kernels before the inclusion of commit e91de6afa81c are impacted. This includes all releases predating that commit in which the socket map race condition remains unguarded. Users running Linux kernel versions older than the fix and hosting BPF programs that target socket maps remain vulnerable.

Risk and Exploitability

The CVSS score of 9.8 marks this issue as critical, while the EPSS score of <1% indicates a very low probability of discovery or exploitation in the wild. The vulnerability is not listed in CISA KEV. Exploitation requires local kernel privilege or the ability to load BPF programs that access socket maps, limiting the attack surface to privileged or compromised systems. Successful exploitation could result in arbitrary memory corruption or kernel crash, potentially enabling privilege escalation if additional conditions are met.

Generated by OpenCVE AI on October 17, 2026 at 10:31 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel patch containing commit e91de6afa81c, adding the missing guard to sk_psock_verdict_data_ready() to prevent the race condition and eliminate the use‑after‑free.
  • Limit the ability to load and use BPF programs that target BPF socket maps (BPF_SK_SKB_VERDICT) until the patch is applied, reducing the opportunity for a race condition leading to kernel memory corruption.
  • As a temporary mitigative measure, avoid inserting sockets into BPF socket maps before establishing a TLS receive context on those sockets, thus preventing the race that triggers the use‑after‑free.

Generated by OpenCVE AI on October 17, 2026 at 10:31 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8593-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8603-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8618-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8663-1 Linux kernel (NVIDIA) vulnerabilities
Ubuntu USN Ubuntu USN USN-8664-1 Linux kernel (NVIDIA BaseOS) vulnerabilities
Ubuntu USN Ubuntu USN USN-8728-1 Linux kernel (GCP) vulnerabilities
Ubuntu USN Ubuntu USN USN-8729-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8761-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8729-2 Linux kernel (Raspberry Pi Real-time) vulnerabilities
Ubuntu USN Ubuntu USN USN-8761-2 Linux kernel (Azure FIPS) vulnerabilities
Ubuntu USN Ubuntu USN USN-8781-1 Linux kernel (NVIDIA Tegra) vulnerabilities
Ubuntu USN Ubuntu USN USN-8729-3 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8802-1 Linux kernel (Oracle) vulnerabilities
Ubuntu USN Ubuntu USN USN-8728-2 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8729-4 Linux kernel (Low Latency) vulnerabilities
Ubuntu USN Ubuntu USN USN-8729-5 Linux kernel (AWS FIPS) vulnerabilities
Ubuntu USN Ubuntu USN USN-8728-3 Linux kernel (Oracle) vulnerabilities
Ubuntu USN Ubuntu USN USN-8729-6 Linux kernel (AWS) vulnerabilities
Ubuntu USN Ubuntu USN USN-8906-1 Linux kernel (IBM) vulnerabilities
History

Fri, 30 Oct 2026 12:45:00 +0000


Fri, 16 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 13 Oct 2026 15:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CPEs cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc4:*:*:*:*:*:*

Thu, 30 Jul 2026 21:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 22 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-364
References
Metrics threat_severity

None

threat_severity

Moderate


Tue, 21 Jul 2026 22:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 20 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Sun, 19 Jul 2026 15:45:00 +0000

Type Values Removed Values Added
Description 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().
Title bpf, skmsg: fix verdict sk_data_ready racing with ktls rx
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-30T12:27:29.882Z

Reserved: 2026-07-19T07:54:57.027Z

Link: CVE-2026-64025

cve-icon Vulnrichment

Updated: 2026-10-16T15:35:27.763Z

cve-icon NVD

Status : Modified

Published: 2026-07-19T16:17:42.527

Modified: 2026-10-30T13:19:28.260

Link: CVE-2026-64025

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-64025 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-17T10:45:07Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

  • CWE-364

    Signal Handler Race Condition