Ivanti の脆弱性 CVE-2025-22457:APT による攻撃の解析と PoC の提供

Ivanti 0-Day RCE Flaw Exploitation Details Revealed

2024/04/11 gbhackers — Ivanti が公表した、認証不要の深刻なリモート・コード実行 (RCE) の脆弱性 CVE-2025-22457 により、サイバー・セキュリティ業界全体に懸念が広がっている。この脆弱性は複数の Ivanti 製品に影響を及ぼすものであり、攻撃者に対してリモート・コード実行を許すため、企業の機密環境が危険にさらされる可能性がある。その一方で、Rapid7 の脆弱性対策チームなどの研究者たちが、この脆弱性の悪用の方法と、その修正に必要な手順について、詳細な分析結果を公開している。

脆弱性の概要

この脆弱性は、HTTPS Web サーバのスタックバッファ・オーバーフローに起因するものであり、Ivanti Connect Secure/Pulse Connect Secure/Policy Secure/ZTA Gateways に影響をおよぼす。

Ivanti は当初、この問題を軽微なバグとし、適切なセキュリティ・リリースや勧告を行うことなく、2025年2月の時点で秘密裏にパッチを適用していた。しかし、中国を拠点とする高度な脅威アクターが、このパッチをリバース・エンジニアリングし、実用的なエクスプロイトを開発した。

この脆弱性は、HTTPS Web サーバのバイナリ用である “/home/bin/web” に、具体的には WebRequest::dispatchRequest 関数に存在する。

この関数は、X-Forwarded-For ヘッダーなどの HTTP ヘッダーを処理するが、長さの検証が不十分という欠陥がある。したがって攻撃者は、このヘッダーに5 0文字を超える値を与えることで、スタック上の固定バッファをオーバーフローさせ、任意のコード実行の機会を得る。

char *current_header_value = ctx->header_value_array[header_index];

size_t sz = strspn(current_header_value, "01234567890.");

char buff50[50];

strlcpy(buff50, current_header_value, sz + 1); // Vulnerable code snippet

つまり、長さの検証の欠如により、スタックが任意の文字列で上書きされてしまい、プログラムの実行制御を奪われる結果として、リモート・コード実行が可能になる。

技術的な詳細
  • 影響を受けるコンポーネント:この脆弱性は、バイナリ用の “/home/bin/web” に、具体的には HTTP ヘッダーを処理する WebRequest::dispatchRequest に存在する。
  • 悪用に関する詳細:攻撃者は、X-Forwarded-For ヘッダーを操作し、スタック上の固定バッファをオーバーフローさせる。ただし、このオーバーフローを引き起こすには、”0123456789.” などの特定の文字を使用する必要があるため、悪用には高度な技術が必要となる。
  • ヒープ・スプレー攻撃:攻撃者はヒープ・スプレー技術を使用して、Address Space Layout Randomization (ASLR) というセキュリティ・メカニズムを回避し、任意のメモリ領域を制御することでコード実行を達成する。
Proof of Concept (PoC)

Rapid7 の研究者たちは、わずか4営業日で、ROP (Return-Oriented Programming) 技術を活用する完全なエクスプロイトの開発に成功した。

An example of the PoC running in test setup
An example of the PoC running in test setup

libdsplibs などの共有ライブラリに含まれるガジェットを利用することで、攻撃者はスタック・ピボットを実現し、最終的に任意のコマンドを実行可能にしている。すでに PoC が公開されているため、パッチ未適用のシステムが、深刻なリスクに直面する状況となっている。

影響を受けるシステム

CVE-2025-22457 の影響を受ける製品は、以下の通りである。

  1. Ivanti Connect Secure:バージョン 22.7R2.6 未満
  2. Pulse Connect Secure:サポート終了 (EoL) 製品:この製品のユーザーに推奨されるのは、サポート対象バージョンへの移行となる。
  3. Ivanti Policy Secure:バージョン 22.7R1.4 未満 (2025年4月21日にパッチ適用予定) 
  4. ZTA Gateways:バージョン 22.8R2.2 未満 (2025年4月19日にパッチ適用予定)

この脆弱性は、すでに実環境での悪用が確認されている。国家が関与する活動だと報告されており、中国を拠点とするグループが、重要な企業システムを標的にして、偵察と攻撃を行っていたことが判明している。

また、攻撃者は、ペイロードを実行するために ASLR (Address Space Layout Randomization) をブルートフォースで突破しようとし、その結果として Webサーバが頻繁にクラッシュしたという事例も報告されている。

緩和策と修正

Ivanti は、一部の対象システム向けにパッチを提供しており、残りのアップデートも 2025年4月末に予定されている。ユーザーに推奨される対応は以下の通りである:

  1. システムを直ちにアップデートする:
    • Ivanti Connect Secure:2025年2月11日リリースされたバージョン 22.7R2.6 にアップデートする。
    • ZTA Gateways:2025年4月19日リリース予定のパッチを適用する。
    • Ivanti Policy Secure:2025年4月21日にリリース予定のパッチを適用する。
  2. 旧製品の移行:Pulse Connect Secure はサポートが終了しているため、Ivanti Connect Secure に移行する。
  3. ネットワークをセグメント化する:Ivanti 製品を他のネットワークから分離し、挙動を監視する。
  4. ログの監視:原因不明のクラッシュなどの疑わしい動作がないか、定期的にログを確認する。

この脆弱性 CVE-2025-22457 の開示が遅れたことで、Ivanti のパッチ適用ポリシーに対する批判の声が上がっている。

専門家たちが警告するのは、国家支援を受けた攻撃者が、サイレント・パッチをリバース・エンジニアリングしたことだ。つまり、見過ごされた脆弱性の悪用というリスクが高まっていることになる。

今回の件が浮き彫りにするのは、迅速な脆弱性開示とエッジ・デバイスのリスクを評価するための、堅牢なプロセスの重要性である。