Apache Subversion の脆弱性 CVE-2024-45720 が FIX:Windows で問題が発生する理由とは?

CVE-2024-45720: Code Execution Flaw Discovered in Apache Subversion for Windows

2024/10/09 SecurityOnline — Apache Subversion (SVN) に存在する、深刻なセキュリティ脆弱性 CVE-2024-45720 (CVSS:8.2) が発見された。SVN は人気のバージョン・コントロール・システムであり、ソース・コード/Web ページ/ドキュメントの管理において、開発者に広く利用されている。この脆弱性が影響を及ぼすのは Windows プラットフォームであり、コマンド・ライン引数での悪意の挿入により、意図しないプログラムの実行につながる可能性があるという。

Apache Subversion プロジェクトのセキュリティ・アドバイザリによると、この脆弱性は Windows プラットフォームでのコマンド・ライン引数の処理方法に起因しているという。具体的に言うと、svn.exe などの Subversion 実行ファイルに、コマンド・ライン引数が渡されるときの、”最適” な文字エンコード変換により引き起こされ問題である。Subversion のアドバイザリには、「特別に細工されたコマンド・ライン引数を使用して、Subversion の “svn.exe” など を実行する攻撃者は、文字エンコード変換プロセスを悪用して、利用して予期しないコマンド ライン引数の解釈を引き起こし、他のプログラムの実行などの可能性を得る」と記されている。

この欠陥は、UNIX などのプラットフォームとは異なる方法で、Windows がコマンド・ライン引数を処理するという事実により悪化する。Windows では、コマンド・ライン引数は単一の文字列としてプログラムに渡され、その後にプログラムが、それらを個々の引数に分解することになる。その際も、特に特定の Unicode 文字が関係する場合に、”最適” な文字エンコード変換が行われ、悪意のコマンドの実行などの、予測できない結果につながる可能性が生じる。

Subversion のアドバイザリには、「Windows 10/11 において、Subversion への影響が生じるという現実がある。他の Windows バージョンにおいても、同様の可能性がある」と記されている。

この問題は、Windows だけに限定されるものだ。しかし、開発環境で Apache Subversion が広く使用されているため、数多くのチームが各種のプロジェクトにおいて Subversion に依存することになり、リスクが増大している。この欠陥は、Linux や macOS などの、UNIX ライクなプラットフォームには影響しない。これらのプラットフォームでは、コマンドライン引数が、Windows とは異なる方法で処理されるためである。

この脆弱性は、重大なソフトウェア脆弱性の特定における専門知識を持つ、DEVCORE のセキュリティ研究者 Orange Tsai と Splitline により報告されている。

すでに脆弱性 CVE-2024-45720 は、Subversion 1.14.4 で修正されているため、Windows プラットフォームの全のユーザーに対して強く推奨されるのは、この修正リリースへと迅速にアップグレードすることだ。ただちにアップグレードできない場合には、Subversion プロジェクトから入手可能なパッチを適用することで、一時的に緩和することも可能である。