Linuxカーネルにおいて、以下の脆弱性が修正されました:staging: rtl8723bs: rtw_cfg80211_set_wpa_ie()におけるヒープバッファオーバーフローの問題です。supplicant_ieはstruct security_priv内の256バイトの配列です。WPAおよびWPA2 IEのコピー処理は以下のように行われています: memcpy(padapter->securitypriv.supplicant_ie, &pwpa[0], wpa_ielen + 2);ここで、wpa_ielenは生のIE長さフィールド(u8、0〜255)です。ローカルユーザーがnl80211を介して長さ255の細工されたWPA IEを含む接続要求を送信した場合、wpa_ielen + 2は257となり、256バイトのsupplicant_ieバッファを1バイト超えて隣接するlast_mic_err_timeフィールドにオーバーフローします。rtw_parse_wpa_ie()はこれを防止していません。この関数の長さ整合性チェックでは、*(wpa_ie+1)と(u8)(wpa_ie_len-2)を比較していますが、wpa_ie_lenが257の場合、(u8)(255) == 255となり、チェックは静かに通過してしまいます。この問題に対して、memcpyの前にWPAおよびWPA2の両パスに明示的な境界チェックを追加し、合計サイズ(wpa_ielen + 2)がsupplicant_ieバッファのサイズを超えるIEは拒否するように修正しました。
|