CVE-2026-64025 in Linux情報

要約

〜によって VulDB • 2026年07月19日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

bpf, skmsg: verdict用sk_data_readyとktls受信(rx)の競合を解消

sk_psock_strp_data_ready()は既にtls_sw_has_ctx_rx()をチェックし、TLS RXコンテキストが存在する場合はpsock->saved_data_readyに委譲することで、受信キューに対するTLS strparserの所有権との衝突を回避しています(コミット e91de6afa81c、「bpf: ktlsでsk_skbプログラムタイプの実行を修正」)。

一方、sk_psock_verdict_data_ready()には同等のガードがありません。ソケットがTLS RXの設定前にsockmap (BPF_SK_SKB_VERDICT) に挿入されると、tls_sw_strparser_arm()は sk_psock_verdict_data_ready を rx_ctx->saved_data_ready として保存します。データ到着時:

tls_data_ready -> tls_strp_data_ready -> tls_rx_msg_ready -> saved_data_ready() = sk_psock_verdict_data_ready() -> tcp_read_skb() が __skb_unlink() を介して sk_receive_queue からデータを削除するが、tcp_eat_skb() は呼び出されないため、copied_seq は進みません。

その後 tls_strp_msg_load() で tcp_inq() >= full_len (古くなった値) となり、空になったキュー上で tcp_recv_skb() が呼ばれ、WARN_ON_ONCE(!first) に到達し、rx_ctx->strp.anchor.frag_list が psockが所有する(解放されている可能性のある)skbを指した状態で戻ります。その後 tls_decrypt_sg() はその frag_list を走査します:use-after-free となります。

sk_psock_strp_data_ready() と同じ修正を適用します。TLS RXコンテキストが存在する場合、recv() の待機プロセスを起こすために psock->saved_data_ready (sock_def_readable) を呼び出し、直ちに復帰して受信キューに触れないようにします。TLS がキューの単独所有権を維持し、tls_sw_recvmsg() 経由でレコードを通常通り復号化します。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-380185

EPSS

0.00000

アクティビティ

低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!