CVE-2026-68302 in Linux
要約
〜によって VulDB • 2026年08月10日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
amt: 各pull処理の後にskbヘッダーポインターを再読み込みする
いくつかのAMT受信および送信パスでは、skbの先頭領域へのポインタ(ip_hdr()、ipv6_hdr()、eth_hdr()、またはAMTメッセージヘッダー)がキャッシュされ、その後、そのキャッシュされたポインタが再度使用される前にヘルパー関数が呼び出されます。このヘルパー関数は、先頭領域を再割り当てする可能性があります。pskb_may_pull()、ip_mc_may_pull()、ipv6_mc_may_pull()、iptunnel_pull_header()、ip_mc_check_igmp()、およびipv6_mc_check_mld()はすべて、古い先頭領域を解放してデータを移動させることができるため、呼び出し前に取得されたポインタはその後にダングリングし、後続のアクセスは解放済みヘッダーに対するuse-after-freeとなります。
影響を受ける箇所は以下の通りです:
amt_rcv(): amt_parse_type()によるpull処理の前にip_hdr()をキャッシュし、その後iph->saddrを読み取ります。
amt_dev_xmit(): ip_mc_check_igmp()/ipv6_mc_check_mld()およびpskb_may_pull()呼び出しの前にip_hdr()/ipv6_hdr()をキャッシュし、その後グループアドレスを読み取ります。
amt_multicast_data_handler(): pskb_may_pull()呼び出しの前にeth_hdr()をキャッシュし、その後L2ヘッダーに書き込みます。
amt_membership_query_handler(): iptunnel_pull_header()および複数のpull処理の前にAMTヘッダー、外側および内側のeth_hdr()とip_hdr()をキャッシュし、それらを読み取り・書き込みします。
amt_igmpv3_report_handler()およびamt_mldv2_report_handler(): ip_hdr()/ipv6_hdr()および現在のグループレコードをキャッシュし、*_mc_may_pull()呼び出しを跨いで、レコードループ内でレポートヘッダーからレコード数を読み取ります。
amt_update_handler(): pskb_may_pull()、iptunnel_pull_header()、ip_mc_check_igmp()、およびレポートハンドラーの前にip_hdr()とAMTメンバーシップ更新ヘッダーをキャッシュし、その後iph->daddrおよびamtmu->nonce / amtmu->response_macを読み取ります。
各箇所における問題は、最初のpull処理が実行される前に使用されるスカラー値のスナップショットを取得するか、先頭領域を移動させる可能性のある最後のpull処理の後にskbからヘッダーポインターを再導出することで修正されます。pull処理を通じて安定した値(ソースアドレスおよびグループアドレス、レスポンスマックおよびnonce、レコード数、外側ソースMAC)はスナップショット化され、書き込み対象または繰り返し読み取りされるポインターは再導出されます。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.