Cisco ISEに未認証のリモートコード実行脆弱性、詳細なExploit手法が公開

セキュリティニュース

投稿日時: 更新日時:

Cisco ISEに未認証のリモートコード実行脆弱性、詳細なExploit手法が公開

2025年7月25日、セキュリティ研究者のBobby Gould氏は、Cisco Identity Services Engine(ISE)に存在する深刻な脆弱性(CVE-2025-20281)について、詳細な調査レポートと実証コードの概要を公開しました。

この脆弱性は、Ciscoが2025年6月に公開した脆弱性情報に基づくもので、認証不要でリモートから任意のコードをroot権限で実行できるという極めて危険な内容です。

脆弱性の概要

問題は、Cisco ISEにおけるenableStrongSwanTunnel()メソッド内での不正なデータのデシリアライズ処理およびコマンドインジェクションに起因します。

このメソッドは、外部から受け取ったJavaオブジェクトをデシリアライズし、特定のシェルスクリプトに引数として渡す設計となっており、攻撃者が細工したシリアライズ済みデータをPOSTリクエストとして送信することで、任意のコマンドを実行できます。

本脆弱性には、以下の2つのCVEが割り当てられています:

  • CVE-2025-20281:コマンドインジェクション
  • CVE-2025-20337:未認証デシリアライズ

実際のExploit手法

Gould氏は、当初のデシリアライズ脆弱性(ZDI-25-607)を調査中に、引数の一部が/usr/bin/sudo /opt/CSCOcpm/bin/configureStrongSwan.shへ渡されることで、コマンドインジェクションが可能であることを突き止めました。

重要なのは、この処理がroot権限で実行される点です。

ただし、JavaのRuntime.exec()メソッドは、文字列のトークン化にStringTokenizerを使用しており、スペースや引用符の扱いが通常のBashとは異なるため、単純な攻撃ではうまくいきませんでした。これを回避するために、${IFS}(Bashの内部区切り変数)を利用することで、スペースの代替として動作させることに成功しています。

echo${IFS}payload${IFS}|${IFS}base64${IFS}-d${IFS}|${IFS}bash

この方法により、悪意あるコマンドをDockerコンテナ内で実行し、最終的にはroot権限を獲得。

コンテナからのエスケープ

さらに驚くべきことに、Cisco ISEが実行するDockerコンテナが”privileged”モードで稼働していたため、コンテナエスケープが可能でした。

Gould氏は、release_agentcgroupsのメカニズムを利用して、ホストOS上で任意のスクリプト(公開鍵の配置)をroot権限で実行し、SSH経由での完全なアクセスを実現しています。

現在の状況と対応

Ciscoはこの脆弱性を修正済みであり、以下のバージョンへのアップデートを強く推奨しています

  • ISE 3.3 Patch 7
  • ISE 3.4 Patch 2

なお、現時点でこの脆弱性は実際に悪用されているとされており、Ciscoも公式にアクティブエクスプロイトを確認済みとしています。公開された技術情報には完全な攻撃コードは含まれていませんが、十分な知識を持った攻撃者であれば再現可能とされています。

まとめ

CVE-2025-20281およびCVE-2025-20337は、Cisco ISEの深刻なセキュリティ欠陥を突いたものです。管理者は直ちにパッチを適用するとともに、外部からの通信を最小限に制限し、異常なPOSTリクエストの検知・防御体制を強化する必要があります。

参照

https://www.zerodayinitiative.com/blog/2025/7/24/cve-2025-20281-cisco-ise-api-unauthenticated-remote-code-execution-vulnerability