CVE-2026-68326 in Linux情報

要約

〜によって VulDB • 2026年08月10日

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

wifi: mwifiex: uAP関連付けイベントのIEsをイベントバッファに制限する

mwifiex_process_uap_event()はEVENT_UAP_STA_ASSOCを処理し、ファームウェアがイベント内にコピーした(re)association要求IEsを公開します:

sinfo->assoc_req_ies = &event->data[len];
len = (u8 *)sinfo->assoc_req_ies - (u8 *)&event->frame_control; sinfo->assoc_req_ies_len = le16_to_cpu(event->len) - (u16)len;

event->lenはデバイスファームウェアによって提供され、検証されることはありません。また、減算処理にはチェックがありません。assoc_req_iesはadapter->event_body[MAX_EVENT_SIZE]を指しており、これはkmalloc()されたstruct mwifiex_adapter構造体に埋め込まれた固定サイズの配列です。

ap_11n_enabledパスにおいてmwifiex_set_sta_ht_cap()はcfg80211_find_ie()を使用してこれらのIEsを走査し、そのfor_each_element()ループでは各要素ヘッダーのデリファレンスを行います。ファームウェアが報告したevent->lenが実際に受信されたバイト数より大きい場合、assoc_req_ies_lenはevent_bodyを超えて拡張されるIEsを示すことになり、結果としてアダプタのスラブオブジェクト外からの読み取り(slab-out-of-bounds read)が発生します(KASAN: slab-out-of-bounds in cfg80211_find_ie)。逆にevent->lenがヘッダーより小さい場合、整数の減算結果は負となり、assoc_req_ies_lenに格納される際に巨大なsize_t値としてラップされます。同じ長さがcfg80211_new_sta()にも渡されるため、比較的控えめな過大主張でも、古いevent_bodyのバイトをNL80211_CMD_NEW_STATION通知内にコピーしてしまう可能性があります。

悪意のあるまたは故障したmwifiexデバイス(USB/SDIO/PCIe)は、インターフェースがAP/uAPモードにある間にこのようなイベントを送信できます。

使用前にevent->lenを検証します:ヘッダーに対してアンダフローを引き起こす長さや、IEsをイベントのコピー先であるevent_body[]バッファの外側に配置してしまう長さは拒否されます。ここでいうevent->lenはstruct mwifiex_assoc_event.lenであり、これはこのイベント内部のペイロードフィールドであり、トランスポートフレームの長さではありません。そのため、イベントの原因とトランスポートフレームの長さしか見えない一般的なMWIFIEX_TYPE_EVENT受信パスではなく、このハンドラ内で検証が行われます。制限対象が実際に受信された長さではなくevent_body[MAX_EVENT_SIZE]であるのは、各トランスポートでイベントの保存方法が異なるためです(USBおよびSDIOは4バイトのイベントヘッダーをevent_skbに残し、PCIeはskb_pullを使用してこれを削除します)。一方、event_bodyはすべてのトランスポートがイベントをコピーする単一の固定バッファです。これは、コミット119585281617("wifi: mwifiex: Fix OOB and integer underflow when rx packets")で追加された受信パスの境界チェックに対応する、イベント経路における同等の対策です。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

責任者

Linux

予約する

2026年07月30日

モデレーション

承諾済み

エントリ

VDB-387697

EPSS

0.00000

アクティビティ

非常低い

ソース

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!