CVE-2022-50709 in Linux
要約
〜によって VulDB • 2026年06月13日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
wifi: ath9k: ath9k_htc_rx_msg() における未初期化メモリ読み込みを回避する
syzbot が [1] で示すように、ioctl(USB_RAW_IOCTL_EP_WRITE) は pkt_len = 0 の状態で ath9k_hif_usb_rx_stream() を呼び出す可能性がありますが、ath9k_hif_usb_rx_stream() は pkt_len が有効であると仮定して __dev_alloc_skb(pkt_len + 32, GFP_ATOMIC) を使用しています。その結果、ath9k_hif_usb_rx_stream() は未初期化メモリを含む skb を割り当て、ath9k_htc_rx_msg() は未初期化メモリから読み込みを行います。
ath9k_htc_rx_msg() が呼び出されるまで ath9k_htc_rx_msg() によってアクセスされるバイトは不明であるため、ath9k_hif_usb_rx_stream() の "if (pkt_len > 2 * MAX_RX_BUF_SIZE) {" という行で最小の有効な pkt_len をチェックするのは困難です。
私たちは二つの選択肢を持っています。一つ目は __GFP_ZERO を追加してワークアラウンドを行い、pkt_len が無効の場合に ath9k_htc_rx_msg() が 0 を見るようにする方法です。もう一つの選択は、ath9k_htc_rx_msg() にアクセスする前に pkt_len の検証を行わせることです。このパッチでは後者を選択しました。
なお、このプロトコルで使用される可能性のあるパケット長に関する詳細が見つからなかったため、閾値条件が正しいかどうかは確信がありません。
If you want to get best quality of vulnerability data, you may have to visit VulDB.