Rust の脆弱性 CVE-2024-24576 (CVSS 10) に注意:Windows 限定のコマンド・インジェクション

CVE-2024-24576 (CVSS 10): Rust Flaw Exposes Windows Systems to Command Injection Attacks

2024/04/09 SecurityOnline — Rust Standard Library で発見された致命的な脆弱性により、Windows ベースのシステムにおいて、任意のコード実行の可能性が生じている。この脆弱性 CVE-2024-24576 が攻撃者に悪用されると、システムを不正に制御される可能性があるという。

問題点

この問題が起因するのは、バッチファイル (拡張子 “.bat” と “.cmd”) を呼び出すために、Windows Command API に渡される引数の、Rust Standard Library における処理方法にある。ライブラリのエスケープ機構に欠陥があるため、熟練した攻撃者が悪意のシェルコマンドを注入し、セキュリティ対策を回避して、大混乱を引き起こす可能性が生じる。

脆弱性 CVE-2024-24576 の CVSS 値は 10.0 であり開発者やサイバー・セキュリティ専門家にとって、手ごわい課題となっている。

影響を受けるシステム

この脆弱性の原因は、コマンドの引数を処理する際の特異なアプローチにあり、結果として Windows 上で独特の問題を引き起こす。引数を配列として扱う他のプラットフォームとは異なり、Windows は引数を単一の文字列に統合し、引数の分離の責任を受信プロセスに委譲する。この設計上の微妙な違いにより、引数分割にカスタム・ロジックを使用する、バッチ ファイルの既定のハンドラーである cmd.exe において、特別な複雑さが生じる。

この脆弱性は、Windows システム上でバッチ・ファイルを呼び出すアプリケーションの開発において、特に信頼できないユーザー入力を処理するアプリケーションの開発において、Rust 技術者に深刻なリスクをもたらす。他のプラットフォームである Linux/MacOS で作業している開発者は、その影響を受けない。

重大性と影響

Rust Security Response WG は、この脆弱性を Critical に分類し、深刻な影響が生じる可能性があるとしている。この脆弱性の悪用に成功した攻撃者には、以下の不正なアクションが許される可能性がある:

  • 脆弱なマシン上での任意のコード実行
  • マルウェアのインストール
  • 機密データの窃取
  • ネットワーク上でのさらなる攻撃
修正

この脆弱性 CVE-2024-24576 に対するパッチは、今後の Rust 1.77.2 リリースに取り込まれる予定である。このアップデートにより、より強固なエスケープが導入され、バッチファイルに対する安全でない引数の受け渡しを防止する、エラー・メカニズムが追加される。

推奨事項
  • 直ちにアップデート: Windows ベースの Rust 開発者に対して推奨されるのは、Rust バージョン 1.77.2 が利用可能になり次第、直ちにアップデートすることだ。
  • コードのレビュー:アプリケーションが Windows バッチ・ファイルを呼び出す場合には、コードを注意深く監査し、信頼できない入力を引数としてダイレクトに受け渡していないことを確認する。
  • 入力のサニタイズ: パッチを適用した Rust バージョンであっても、インジェクション攻撃のリスクを最小限に抑えるために、常に強固な入力サニタイズを実践すべきである。