TP-Link Omada ER605ルーター内で重大な脆弱性チェーンが発見され、認証不要のリモートコード実行が可能になることが判明しました。攻撃メカニズムの綿密な分解と、動作するエクスプロイトの再現が独立研究者によって公開され、同研究者はネットワークレコード同期のために本デバイスが使用する内部のDynamic DNS(DDNS)サービスを精査しました。
この欠陥は、ER605(UN)_V2_2.2.4より前のファームウェアバージョンを実行しているTP-Link ER605 VPNルーターに影響します。攻撃の中心にあるのは、DDNS操作を司るcmxddnsdデーモンです。高い権限で実行されるこのデーモンは、Dynamic DNSサーバーからの応答を処理します。フォレンジック分析により、ネットワークパケットの取り扱いにはフィールド長の検証不足が多く、これがバッファオーバーフローを引き起こし、その後の実行フローの乗っ取りにつながることが明らかになりました。
このエクスプロイトは、CVE-2024-5242、CVE-2024-5243、CVE-2024-5244という3つの異なる脆弱性を組み合わせて構築されています。主要な脆弱性は、秘匿されたエンコーディング実装とハードコードされた暗号鍵を悪用し、管理用DDNSメッセージを偽装できる点にあります。二次および三次の欠陥により、DDNS応答内のサーバー名やエラーコードの解析時にバッファオーバーフローが可能になります。これらの不備は、受信パケット解析に特化した単一の関数内に局在しています。
メーカーのDDNSプロトコルは、独自のエンコーディング方式と、変更されたBase64アルファベットをDES暗号化と組み合わせて使用しており、その鍵はバイナリに直接埋め込まれています。アルゴリズムをリバースエンジニアリングすることで、構文的に正しいサーバー応答を構築できるようになり、ルーターを特定の侵害された処理経路へと誘導することが可能になりました。
攻撃は2つの明確な段階で進行します。まず攻撃者は、意図的に不正に形成された過大なDNSクエリによってグローバル構造体をオーバーフローさせ、メモリリークを引き起こすことで、アドレス空間配置のランダム化(ASLR)を回避します。次に、ErrorCodeフィールド内でスタックオーバーフローが誘発され、リターンアドレスを上書きしてReturn-Oriented Programming(ROP)チェーンを組み立て、任意のシステムコマンドを実行できるようになります。
攻撃の成功には、デバイスと外部DNSサーバー間のネットワークトラフィックにおけるMan-in-the-Middle(MitM)位置が必要です。文書化されたシナリオでは、不正なDHCPサーバーがゲートウェイおよびDNSノードになりすますために用いられました。その結果、ルーターからのすべての送信トラフィックが攻撃者ノードを経由してルーティングされ、DDNSサービス応答を傍受・改ざんする能力が得られます。
最終的に、これによりrootレベルの管理権限でコマンドを実行できるようになります。ペイロード長の制約は、リモートサーバーから第2段階のスクリプトを取得することで回避されます。概念実証(PoC)エクスプロイトは研究者によってパブリックドメインとして公開されており、ユーザーには修正済みバージョンへ直ちにファームウェアを更新することが強く推奨されます。
翻訳元: https://meterpreter.org/root-via-ddns-the-multi-stage-exploit-dissecting-the-tp-link-omada-er605/