Motorola MR2600における認証不要のRCE:完全開示
研究者がMotorola MR2600ルーターにおける認証不要のリモートコード実行脆弱性を詳細に報告し、完全なエクスプロイトチェーンと認証バイパスを公開。本ルーターはサポート終了であり、パッチは提供されていない。
セキュリティ研究者が、Motorola MR2600 Wi-Fi 5ルーターにおける認証不要のリモートコード実行(RCE)脆弱性の詳細な報告書を公開した。最後のファームウェアアップデート(v1.0.22)は2024年半ばにリリースされ、本デバイスは現在サポート終了であり、アクティブなアップデートメカニズムは存在しない。研究者は、ファームウェアアップロードおよび検証エンドポイントの両方に適切な認証が欠如しており、LAN上の攻撃者(リモート管理が有効な場合はWANからも)が悪意のあるファームウェアイメージを書き込めることを発見した。
ファームウェアアップロードのバイパス
ルーターはPOST /WEBCGI1/prog.fcgi?method=/cgi-bin/fwupload.cgiでfwuploadエンドポイントを公開している。開発者は、アップロードされたファイルが有効なSEAMAイメージであることを確認するため、最初の4バイトがマジックバイト0x27 0x05 0x19 0x56であるかをチェックしようとした。しかし、検証は抽出されたファイルフィールドではなく、生のマルチパートフォームデータに対して適用される。つまり、マルチパートの境界プレフィックス(----)がマジックバイトと一致しないため、正当なアップロードは常に失敗する。攻撃者は、マルチパートエンコーディングなしで生のファームウェアイメージを送信することでこれをバイパスできる。ファイルは認証チェックの前に/tmp/firmware.imgに書き込まれ、チェック自体は失敗してもファイルを削除しない。
書き込みのための認証バイパス
2番目のステップでは、アクションLoadFirmwareValidationを使用してPOST /WEBCGI1/にSOAPリクエストを送信し、書き込みをトリガーする。このエンドポイントは認証を要求するはずだが、アクセス制御ロジックに欠陥がある。コードは、許可リストのパスを部分文字列一致でチェックし、拒否リストのパスを完全一致でチェックする。許可リストに含まれる文字列(例:?Login.html)をURIに追加することで、リクエストは許可リストチェックを通過し、拒否リストの完全一致は失敗する。最終的なリクエストはPOST /WEBCGI1/?Login.htmlとなり、認証を完全にバイパスする。
エクスプロイトチェーン
- マルチパート境界なしで悪意のあるファームウェアイメージを
fwupload.cgiにアップロードする。 - 認証バイパスを使用して
LoadFirmwareValidationSOAPリクエストを送信する。 - ルーターはSEAMAイメージとCRC32を検証する(暗号署名は不要)。
- ファームウェアは
mtd_writeを介して書き込まれ、ルーターは攻撃者のコードで再起動する。
影響と開示
最低でも、LAN上の攻撃者はこれを悪用できる。リモート管理が有効な場合、WANからも悪用可能である。Shodanは現在、41台の露出したMR2600ルーターを示している。研究者は責任ある開示を試みたが、Motorola MobilityとMotorola Solutionsの間でたらい回しにされ、どちらも製品の所有権を主張しなかった。サポート終了の状況と壊れたアップデートインフラ(アップデートエンドポイントは現在、通信SaaS企業を指している)を考慮し、研究者は完全な公開開示を選択した。バグ報奨金は支払われなかった。
ディスカッション
0 件のコメント
最初のコメントを投稿しましょう。