CVE-2023-45612
CVEの説明
JetBrains Ktor 2.3.5 より前のバージョンでは、XML 形式を使用する ContentNegotiation のデフォルト設定が XXE に対して脆弱でした。
この脆弱性は、2023年9月29日に @marychatte によってパッチが適用されました(https://github.com/ktorio/ktor/pull/3770)。この脆弱性は、外部ライブラリ xmlutil version 0.86.1 の設定ミスに基づくサプライチェーン攻撃によって引き起こされました。

OWASP ガイド(https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#xmlinputfactory-a-stax-parser)に基づくと、この修正は十分に包括的ではありません。ここで興味深い回答を見つけました(https://security.stackexchange.com/questions/260956/java-xxe-vulnerability): DTD を無効にすることが主な目的であり、これは基本的にこの攻撃に対する主要な防御策です。
OWASPとは?
- OWASP(Open Worldwide Application Security Project)は、ソフトウェアセキュリティの向上に焦点を当てた、世界的な非営利コミュニティです。ドキュメント、ツール、トレーニングなどの無料かつベンダーに依存しないリソースを提供し、開発者、セキュリティ研究者、組織が安全なアプリケーションを構築できるよう支援しています。最もよく知られているプロジェクトの1つは OWASP Top 10 で、これは最も重大な Web アプリケーションセキュリティリスクを取り上げています。
概念実証(PoC)
防止ガイドライン
- アップグレード: Ktor ≥ 2.3.5 および xmlutil をパッチ適用済みバージョンに更新する
- XML 解析を堅牢化する:
- DOCTYPE 宣言を無効化する
- 外部一般/パラメータ実体を無効化する
- 外部 DTD の読み込みを無効化する
- FEATURE_SECURE_PROCESSING を有効化する
- XInclude を無効化する
- 厳密に必要でない限り、XML よりも JSON を優先する
- 最小権限の原則: 解析時にファイルシステム/ネットワークへのアクセスを持たずにサービスを実行する
- 入力検証: アプリケーション層で DOCTYPE 宣言を含むペイロードを拒否する
参照: