CVE-2026-64025 in Linux
Zusammenfassung
von VulDB • 19.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
bpf, skmsg: Behebung eines Race Conditions zwischen der Verdict-Funktion sk_data_ready und ktls RX
sk_psock_strp_data_ready() überprüft bereits tls_sw_has_ctx_rx() und delegiert an psock->saved_data_ready, wenn ein TLS-RX-Kontext vorhanden ist. Dadurch wird ein Konflikt mit dem Besitz des Empfangsqueues durch den TLS-Strparser vermieden (Commit e91de6afa81c, „bpf: Fix running sk_skb program types with ktls“).
sk_psock_verdict_data_ready() verfügt über keine entsprechende Schutzabfrage. Wenn ein Socket vor der Konfiguration von TLS RX in eine sockmap eingefügt wird (BPF_SK_SKB_VERDICT), speichert tls_sw_strparser_arm() sk_psock_verdict_data_ready als rx_ctx->saved_data_ready. Bei Datenankunft:
tls_data_ready -> tls_strp_data_ready -> tls_rx_msg_ready -> saved_data_ready() = sk_psock_verdict_data_ready() -> tcp_read_skb() leert den sk_receive_queue über __skb_unlink(), ohne tcp_eat_skb() aufzurufen, sodass copied_seq nicht erhöht wird.
tls_strp_msg_load() stellt anschließend fest, dass tcp_inq() >= full_len (veraltet) ist, ruft tcp_recv_skb() für die nun leere Warteschlange auf, löst WARN_ON_ONCE(!first) aus und kehrt zurück, wobei rx_ctx->strp.anchor.frag_list auf einen von psock besitzten (potenziell freigegebenen) skb zeigt. tls_decrypt_sg() durchläuft anschließend diese frag_list: Use-After-Free.
Wenden Sie dieselbe Korrektur wie bei sk_psock_strp_data_ready() an: Wenn ein TLS-RX-Kontext vorhanden ist, rufen Sie psock->saved_data_ready (sock_def_readable) auf, um recv()-Waiter zu wecken, und kehren sofort zurück, wobei der Empfangsqueue unberührt bleibt. TLS behält den alleinigen Besitz des Queues und entschlüsselt das Record normal über tls_sw_recvmsg().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.