TP-Link TL-WR940N ルーターの脆弱性 CVE-2024-54887:PoC と技術詳細の提供

TP-Link Vulnerability: PoC Exploit for CVE-2024-54887 Reveals Remote Code Execution Risks

2025/01/20 SecurityOnline — TP-Link TL-WR940N ルーターに影響を及ぼす、深刻な脆弱性 CVE-2024-54887 に対して、詳細な分析と PoC (Proof of Concept) エクスプロイト・コードが、セキュリティ研究者の Joward より公開された。この脆弱性は、デバイスの IPv6 DNS サーバのコンフィグ・パラメータの処理で発見された、バッファ・オーバーフローの欠陥に起因する。その悪用に成功した攻撃者は、任意のコード実行やサービス拒否攻撃を行う可能性を手にする。

Joward の調査により明らかにされたのは、ルーターの Web インターフェイス内の2つのパラメータ dnsserver1/dnsserver2 を介して、メモリにコピーされる文字列の長さが検証されていないことだ。Joward は、「初期調査の結果、スタックバッファ・オーバーフローの脆弱性がある可能性が示唆された。この問題は、最新ファームウェアを実行している TL-WR940N ルーターの、ハードウェアバージョン 3/4 に影響を及ぼすものであり、その後のハードウェアの改良により緩和されている」と説明している。

デバイスのファームウェアの静的解析により、最新の緩和策である NX/PIE 保護などの欠如といった、いくつかの重大な欠陥が明らかになった。こうした欠陥が、この脆弱性の悪用を極めて容易にしている。

Joward の PoC エクスプロイトが示すのは、ROP (Return Oriented Programming) 技術を活用して脆弱性を悪用し、リモート・コード実行を達成するアプローチである。彼は、安全が確保されない関数呼び出しの特定から、機能的なエクスプロイトの構築に至るまで、そのプロセスを詳細に説明している。

  • 静的/動的な分析:分析は、Firmadyne や Ghidra などのツールを使用してルーターのファームウェアを解凍し、エミュレートすることから始まった。Joward の指摘は、「dnsserver1/dnsserver2 パラメータにより、ルーターがデフォルトで使用する IPv6 DNS サーバを選択できる。しかし、いずれのパラメータも、メモリにコピーされる前に長さがチェックされていないようだ」というものだ。
  • ROP エクスプロイトの開発:一連の巧妙に細工されたガジェットが、シェルコードの実行を容易にした。Joward は、「MIPS Linux 向けの ROP エクスプロイトを書くには、x86 エクスプロイトには存在しない、いくつかの独特な考慮事項がある。したがって、ハードコードされたスタック上の位置へのジャンプといった、単純なものにはならない。これらの懸念事項の中で最も重要なのは、キャッシュの一貫性の欠如と遅延命令である」と説明する。
  • カスタム・シェルコード:このエクスプロイトは、簡略化のためにバインド・シェルを使用しているため、IP アドレスを変更することなく、攻撃の複製が可能となっている。このシェルコードにより、侵害したデバイスを完全に制御できるようになる。

脆弱性 CVE-2024-54887 は、旧式のハードウェアを使用しているユーザーにとって深刻なリスクとなる。影響を受けるデバイスに ASLR (Address Space Layout Randomization) が実装されていないため、リモート・コード実行が達成される可能性が高い。Joward は、「この脆弱性は深刻なものだ。プログラムをクラッシュさせるだけではなく、実行フローを制御することも可能になるだろう」と述べている。

残念なことに、TL-WR940Nの ハードウェア・バージョン 3/4 は、すでにサポートが終了しており、セキュリティ・アップデートは提供されない。この EoL 問題について、TP-Link は開示したアドバイザリで説明している。ユーザーに対して同社が推奨するのは、新しいデバイスへのアップグレードによる、継続的な保護の確保となっている。

技術的な詳細に関心があるなら、PoC と追加のリソースを GitHub で入手してほしい。