Ivanti Avalanche の XXE の脆弱性 CVE-2024-38653 が FIX:PoC も提供

PoC Exploit Releases for Unauthenticated XXE Flaw CVE-2024-38653 in Ivanti Avalanche

2024/08/29 SecurityOnline — Ivanti Avalanche に存在する深刻な脆弱性 CVE-2024-38653 (CVSS:8.2) に関する、技術的な詳細と PoC エクスプロイト・コードが、セキュリティ研究者である D4mianWayne により公開された。特に Ivanti の Mobile Device Management (MDM) ソリューションに依存している環境では、この脆弱性の影響を受けるシステムが重大なリスクにさらされる。


この脆弱性 CVE-2024-38653 は、Ivanti Avalanche の複数バージョン 6.3.1/6.4.0/6.4.1/6.3.4 で発見された、XXE (XML External Entity) の欠陥に起因する。この脆弱性を悪用する未認証の攻撃者は、”/mdm/checkin” エンドポイントへ向けた悪意の PUT リクエストを作成することで、ターゲット・システムで任意のファイル読み取りを実行できるようになる。この種のエクスプロイトの影響は深刻であり、影響を受けるサーバに保存されている機密データに対する、攻撃者によるアクセスが許される可能性が生じる。


この脆弱性は、Ivanti Avalanche コードベース内の XXE (XML External Entity) の欠陥に、具体的には、CheckinServlet.java ファイルの doPut メソッドの問題に起因する。このメソッドは、”/mdm/checkin” エンドポイントで受信した PUT リクエストと対話し、リクエスト本文を PList.decodeToMap メソッドに渡して、XML 解析を行わせるという機能を持つ。

/*     */     try {
/*  86 */       sin = Utility.readFile((InputStream)req.getInputStream());
/*     */ 
/*     */       
/*  89 */       String sessionId = req.getParameter("sessionId");
/*  90 */       String udidForVendor = req.getParameter("udid");
/*  91 */       boolean deviceSimulator = ServletUtil.parseBoolean(req.getParameter("deviceSimulator"));
/*  92 */       IDeviceAPI dapi = this.m_apiVector.getDbDeviceAPI();
/*     */       
/*  94 */       Map<String, String> pairs = PList.decodeToMap(sin);

この問題のコアは、解析に使用される XMLInputFactory が、XML データ内の外部エンティティの処理を、デフォルトで無効化していないところにある。この見落としにより、特別に細工されたリクエストを作成する攻撃者が、パーサーによる外部エンティティへのアクセスを可能にすることで、機密情報やシステム・ファイルの漏洩に加えて、リモート・コード実行の達成へとつながる可能性が生じる。

セキュリティ研究者である D4mianWayne は、CVE-2024-38653 の脆弱性の技術的な詳細を明らかにし、さらに、PoC エクスプロイト・コードを Github でリリースした。この簡単に入手できるエクスプロイトにより、スキルの低い脅威アクターにおいても、この脆弱性の悪用の可能性が生じる、攻撃のリスクが高まっている。

現時点において、この PoC エクスプロイトは、ターゲット・システムから任意のファイルを読み取る機能を持つが、対象となる XML ライブラリの URL 解析の制限により、1行のデータを含むファイルのみに限定されている。この制限が存在するのだが、エクスプロイトは依然として深刻な脅威である。

この XXE 脆弱性は、Ivanti Avalanche のバージョン 6.3.1/6.4.0/6.4.1/6.3.4 などに影響を及ぼす。しかし、幸いなことに、すでに Ivanti は Avalanche バージョン 6.4.4 をリリースし、この脆弱性に対処している。ユーザーに対して推奨されるのは、可能な限り早急に、この最新バージョンへとアップグレードすることだ。