CVE-2026-64025 in Linux
Riassunto
di VulDB • 19/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
bpf, skmsg: correggere il race condition tra verdict di sk_data_ready e ktls rx
sk_psock_strp_data_ready() verifica già tls_sw_has_ctx_rx() e delega a psock->saved_data_ready quando è presente un contesto TLS RX, evitando un conflitto con la proprietà della coda di ricezione da parte dello strparser TLS (commit e91de6afa81c, "bpf: Fix running sk_skb program types with ktls").
sk_psock_verdict_data_ready() non dispone di una guardia equivalente. Quando un socket viene inserito in una sockmap (BPF_SK_SKB_VERDICT) prima che la configurazione TLS RX sia attiva, tls_sw_strparser_arm() salva sk_psock_verdict_data_ready come rx_ctx->saved_data_ready. All'arrivo dei dati:
tls_data_ready -> tls_strp_data_ready -> tls_rx_msg_ready -> saved_data_ready() = sk_psock_verdict_data_ready() -> tcp_read_skb() svuota la sk_receive_queue tramite __skb_unlink() senza chiamare tcp_eat_skb(), quindi copied_seq non viene avanzato.
tls_strp_msg_load() trova successivamente tcp_inq() >= full_len (dati obsoleti), chiama tcp_recv_skb() sulla coda ora vuota, incontra WARN_ON_ONCE(!first) e restituisce con rx_ctx->strp.anchor.frag_list che punta a un skb di proprietà di psock (potenzialmente liberato). tls_decrypt_sg() successivamente attraversa tale frag_list: use-after-free.
Applicare la stessa correzione utilizzata per sk_psock_strp_data_ready(): se è presente un contesto TLS RX, chiamare psock->saved_data_ready (sock_def_readable) per risvegliare i waiters di recv() e restituire immediatamente, lasciando intatta la coda di ricezione. TLS mantiene la proprietà esclusiva della coda e decrittografa il record normalmente tramite tls_sw_recvmsg().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.