MediaTek Wi-Fiチップセットの致命的エクスプロイト: ゼロクリック脆弱性
(blog.sonicwall.com)MediaTek Wi-Fiチップセットの深刻な脆弱性: Zero-Click脆弱性(CVE-2024-20017)がルーターとスマートフォンを脅かす
概要
- SonicWall Capture Labs脅威研究チームはCVE-2024-20017脆弱性を認識し、その影響を評価して緩和策を開発
- CVE-2024-20017はCVSS 3.0スコア9.8の深刻なzero-click脆弱性で、MediaTek Wi-FiチップセットMT7622/MT7915およびRTxxxx SoftAPドライバーバンドルに影響
- Ubiquiti、Xiaomi、Netgearなどさまざまなメーカー製品で使われるMediaTek SDKバージョン7.4.0.1以前、およびOpenWrt 19.07と21.02が影響を受ける
- この脆弱性はユーザー操作なしでリモートコード実行を可能にし、MediaTekはこれを緩和するためのパッチを配布
- この脆弱性は3月に公開・パッチ適用されたが、最近公開されたPoCにより悪用可能性が高まっている
技術的概要
- 脆弱性は、MediaTek MT7622/MT7915 SDKおよびRTxxxx SoftAPドライバーバンドルに含まれるネットワークデーモン
wappdに存在 wappdは無線インターフェースとアクセスポイントを構成・管理する役割を担い、特にHotspot 2.0技術と関連するwappdのアーキテクチャは、ネットワークサービス本体、デバイスの無線インターフェースと相互作用するローカルサービス群、そしてUnixドメインソケットを介したコンポーネント間通信チャネルで構成される- この脆弱性は、攻撃者が制御するパケットデータから直接取得した長さの値をメモリコピーに使用することで発生するバッファオーバーフローに起因する
脆弱性のトリガー
- 脆弱性は
IAPP_RcvHandlerSSB関数で発生し、攻撃者が制御する長さの値がIAPP_MEM_MOVEマクロに渡される - 最大パケット長1600バイトを超えないことを確認する以外、境界チェックは行われない
- 攻撃者は想定された構造体を攻撃ペイロードの前に付加してパケットを送信する必要がある
RT_IAPP_HEADER構造体の長さは小さくなければならず、RT_IAPP_HEADER.Commandフィールドは50でなければならない
悪用
- 公開されたエクスプロイトコードはROPチェーンを使用し、グローバルアドレステーブル上書き手法によってリモートコード実行を達成
system()呼び出しを利用して、攻撃者にリバースシェルを送るコマンドを実行- リバースシェルはBashとNetcatツールを使って設定される
SonicWallの保護
- SonicWallの顧客がこの脆弱性による悪用に備えられるよう、以下のシグネチャが配布されている
- IPS: 20322 MediaTek MT7915 wlan Service OOB Write 1
- IPS: 20323 MediaTek MT7915 wlan Service OOB Write 2
緩和の推奨事項
- エクスプロイトコードが公開されているため、ユーザーには当該チップセットの最新ファームウェア版へアップグレードすることを強く推奨
関連リンク
GN⁺のまとめ
- この記事はMediaTek Wi-Fiチップセットの深刻なzero-click脆弱性について扱っており、これはユーザー操作なしでリモートコード実行を可能にする
- SonicWall研究チームはこの脆弱性を認識して緩和策を開発しており、ユーザーには最新ファームウェアへのアップグレードを推奨している
- この脆弱性はさまざまなメーカーのルーターやスマートフォンに影響し、最近公開されたPoCにより悪用可能性が高まっている
- 類似機能を持つ製品としてはQualcommのWi-Fiチップセットがあり、セキュリティアップデートを定期的に確認することが重要
1件のコメント
Hacker News のコメント
MediaTek のベンダー SDK ドライバーのソースコードを mt76 と比較してみた立場からすると、それほど驚きではない。控えめに言ってもごちゃごちゃしている
残念ながら、mt76 よりスループットが少し出るという理由で、ベンダードライバーを入れたサードパーティ製ファームウェアビルドも一部使われている
幸い、MediaTek と WiSoC 部門には自由・オープンソースソフトウェアコミュニティと積極的にやり取りしているエンジニアが何人かいて、mt76 ベースの小さな OpenWrt フォークも自分たちで保守している: https://git01.mediatek.com/plugins/gitiles/openwrt/feeds/mtk...
タイトルの表現は少し誤解を招く。家に mt76 Wi-Fi 搭載のルーターが何台かあるので、ファームウェアかシリコンのバグかと思ってリンクをクリックしたが、実際はベンダーの SDK の雑多なコードのバグだと分かって安心した
メインラインカーネルと hostapd で mt76 のサポートはかなり良いのに、誰がそれを使おうとしたのか理解できない
「Ubiquiti、Xiaomi、Netgear などを含む複数メーカーの製品で使われたドライバーバンドル」とされている
ただし Ubiquiti のように、実際の製品ではこれを使っていないと明らかにしているベンダーもある: https://community.ui.com/questions/CVE-2024-20017/b3f1a425-d...
元のブログ: https://blog.coffinsec.com/0day/2024/08/30/exploiting-CVE-20...
アプリケーション構造はやや複雑だが、本質的にはネットワークサービス1つ、デバイスの無線インターフェイスと相互作用するローカルサービス群、そして Unix ドメインソケットを使うコンポーネント間通信チャネルで構成されている
まだ救いなのは、これがベースバンドファームウェア内のバグというより、無線ネットワークカード自体の動作に必須ではない「付加価値」サービス側の問題のように聞こえる点だ
一部デバイスのドライバーパッケージでは、実際のドライバーは小さくて静かなのに、ユーザーの99%が必要とせず望んでもいない機能のために桁違いに大きいバンドルウェアを一緒にインストールする方式を思い出す。プリンターと GPU は特にひどい
MediaTek の命名規則に何らかの論理があるのか、それとも全デバイスが単に MTxxxx で x が増分値か乱数なのか気になる
mt6631 Wi-Fi チップ入りのデバイスを持っているが、影響を受けるリストにないので大丈夫だとは推測できても、製品ファミリーのどのあたりに位置するのか分かりにくい
OpenWrt 19.07 と 21.02 が影響を受けるというが、見る限り公式の OpenWrt ビルドは Mediatek SDK ではなく mt76 ドライバーだけを使っているように見える
UBNT ハードウェアで使われる一部チップセット向けの脆弱なドライバーはあるが、そのドライバーを使っている製品は一つもないという
AMD CPU 搭載のノート PC を買うと、いつも MediaTek RZ616 Wi-Fi カードが付いてくるのはなぜなのか分からない
全部 Intel Wi-Fi カードに交換してきたので、今では将来マイクロプラスチックになる RZ616 カードの山ができている
末尾が0のモデルは標準 PCIe を使い、OEM にはおよそ10ドル高く売られる
AMD は OEM に Intel の xx1 チップと同じ価格帯で売れるものを作るため、MediaTek MT7921 と MT7922 をそれぞれ RZ608、RZ616 としてリブランドしたのだ
Qualcomm はチップセット世代が最新でなくなると、メインラインカーネル側のサポート余力がかなり薄くなる。今どき Qualcomm を動かすには、とてつもないベンダーからの圧力が必要だ
個人的には softmac のほうが好みだ。最近は良い選択肢があまりなく、ath9k の黄金時代は過ぎ去った
仕事用に Intel ThinkPad と AMD ThinkPad を順に使ったが、AMD 側の MediaTek チップセット Wi-Fi は Intel 側の Intel チップセットよりはるかに良かった
Intel 側は1時間に何度もネットワーク接続が切れ、5GHz でも ssh を使うとすぐ体感できるほど遅延がひどかった。今使っている MT7921 デバイスは Linux でこの2〜3年非常に安定している
結局、チップセットとノート PC の組み合わせによってかなり違うようだ
自分の携帯電話も MediaTek チップセットを使っていると記憶している。そしてメーカーがその後 MediaTek から離れた理由は、それら製品の、ええと、品質だったとぼんやり覚えている
携帯電話で Wi-Fi がどう構成されているのかは分からない。この携帯電話が影響を受けるか確認する方法はあるだろうか。無制限のモバイルデータ通信と良好なカバレッジがあるので Wi-Fi はほとんど使わないが、それでも知っておけるとありがたい
"sudo su"を実行してからls /sys/moduleを見ればいい出力は lsmod と似た感じになる
最近のように、人々が手に入るシリコンなら何でも買う時代でも、こういうC級ベンダーが PC 戦略にならってファームウェアを完全に開放し、オープンソースコミュニティに任せない理由がいまだに理解できない
「影響を受けるバージョンには MediaTek SDK 7.4.0.1 以下と OpenWrt 19.07、21.02 が含まれる」「脆弱性は MediaTek MT7622/MT7915 SDK および RTxxxx SoftAP ドライバーバンドルに含まれるネットワークデーモン wappd にある」とされているが、肝心の OpenWRT は wappd を使っていないように見える
だから自由なファームウェアが必要なのだ。Broadcom と Ralink にはもううんざりだ