ベニー・チャーニーの著書『Cybersecurity Upside Down』の詳細はこちら

詳しくはこちらから
サイト翻訳には人工知能を利用しており、正確性を追求しておりますが、必ずしも100%正確とは限りません。ご了承ください。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み

著者: OPSWAT

CVE-2025-8088 は、WinRAR のバージョン 7.13 以前のバージョンに影響を与えるパストラバーサル脆弱性です。この脆弱性を悪用すると、特別に細工されたアーカイブにより、アーカイブの解凍時にファイル名およびパスの検証がバイパスされ、攻撃者が制御するコンテンツが NTFS ボリューム上の特定の場所に書き込まれる可能性があります。特定の条件下では、この書き込み機能を利用してリモートでコードを実行することが可能です。

OPSWAT ・プログラムのフェローたちが、CVE-2025-8088に関する技術的分析を実施しました。RAR5およびNTFS(ADS)の仕組みに関するこの分析の結果、不正な書き込みにつながるデータの抽出ワークフローとADSの処理経路が特定され、サイバーセキュリティの実務者や組織に向けた実用的な緩和策および是正措置の指針がまとめられています。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み

CVE-2025-8088 の概要

WinRARは、Windowsで最も広く利用されているアーカイブユーティリティの一つです。このソフトウェアは、ADS(代替データストリーム)などのNTFS固有のメタデータの保持および復元に対応しています。CVE-2025-8088は、特定のWinRARバージョンのADS処理ロジックに存在する脆弱性です。この脆弱性があるバージョンでは、悪意のあるアーカイブが抽出時に使用されるストリーム識別子に影響を与える可能性があり、ADS作成ワークフローにおけるパスの正規化および検証が不十分であるため、ディレクトリトラバーサル攻撃が可能となります。

CVE-2025-8088は、深刻度が高い問題と評価されており、CVSS v4.0のベーススコアは8.4(High)です。これは、ユーザーが脆弱性のあるバージョンのWinRARを使用して、特別に細工されたアーカイブを解凍した場合、測定可能なセキュリティ上の影響が生じる可能性があることを反映しています。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み

技術的背景

NTFSの代替データストリーム

NTFS (New Technology File System) is the default filesystem for modern versions of Windows. Compared to FAT-based filesystems, NTFS supports advanced capabilities including ACLs (access control lists), EFS encryption, compression, hard links, reparse points (junctions and symlinks), and ADS.

ADS is an NTFS feature that allows a single file or directory to contain multiple independent streams of data. The primary, user-visible content is stored in the unnamed default stream, commonly represented as ::$DATA, while additional named streams can be accessed using the syntax:

filename.ext:streamname

These named streams are not normally visible in standard Windows Explorer views, but they are fully supported by the filesystem and can be enumerated using supported tooling. For instance, dir /R can display alternate streams.

WinRAR supports extracting archive entries that include ADS syntax. When such entries exist within an archive, WinRAR writes the corresponding content into the target file’s alternate stream during extraction.

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み

RAR5ファイルの構造について

RAR5アーカイブは、一連のブロックとして保存されます。各ブロックは、ブロックの種類やサイズ情報を定義するヘッダーで始まります。また、オプションで、追加のメタデータ領域や、圧縮されたコンテンツなどのペイロードバイトで構成されるデータ領域を含めることもできます。

ブロック = ヘッダー + (任意の追加領域) + (任意のデータ領域)

RAR5では、いくつかのブロックタイプが使用されています。CVEで関連するブロックタイプは以下の通りです:

  • ファイルヘッダー(タイプ2):アーカイブ内のファイルエントリ(名前/パス、属性、タイムスタンプ、圧縮パラメータ)を記述し、その後にファイルのペイロードデータが続く
  • サービスヘッダー(タイプ3):アーカイブまたは特定のファイルエントリに関連する追加のメタデータ(ADSなど)を格納する、オプションの補助ヘッダー

NTFSファイルシステムにおけるADSは、STMと呼ばれるサービスヘッダー(タイプ3)によって表されます。サービスヘッダーのデータ領域には、ベースファイルエントリのADSストリームバイトが含まれています。

簡単に言えば:

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図1. NTFSファイルシステムにおけるADS

技術的分析(CVE-2025-8088)

RAR5の解凍ワークフロー

WinRAR processes RAR5 archives as a sequence of blocks. During extraction, it iterates over these blocks, parses each block header, and validates header integrity using the embedded CRC32 before continuing. After a file entry is processed, WinRAR decompresses and writes the base file content to the disk, then determines whether additional NTFS-related metadata must be applied via associated service records. When an ADS (Alternate Data Stream) record is present, such as an STM service entry, WinRAR enters the ADS-handling path, combines the base file path with the stream name to form the ADS target, and creates the stream.

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図2. 解析中に再構築された高レベル抽出フロー(ADS処理分岐を含む)。

CVE-2025-8088の根本的な原因は、ADSストリームの作成時に、アーカイブが管理するメタデータから導出されたパスを使用してWindowsAPI ()が呼び出されるため、ADSパスの構築および検証だけではディレクトリトラバーサルを防止できない点にある。

ADS(「STM」)のコードパスの特定

当社の大学院生フェローは、WinRAR 7.12 を使用し、管理された実験室環境下で静的解析と動的解析を組み合わせて実施しました。彼らはバイナリ内の「STM」サービスマーカーを検索することで ADS に関連するロジックを特定し、実行時に抽出側のコードパスを確認しました。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図3. ADS関連の処理を識別するために使用される文字列「STM」を参照している2つのコード箇所。

ADSデータを含むアーカイブの抽出中に検出される「STM」参照箇所にブレークポイントを設定したところ、そのブレークポイントは常にヒットし、この実行パスが通常の抽出ワークフロー中に呼び出されていることが確認された。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図4. 動的解析:ADS処理パスにおけるブレークポイントのヒット。

ブレークポイントに到達すると、デバッガーのコールスタックを用いて、WinRAR UIの「抽出」操作後に呼び出された関数のシーケンスを再構築し、下流のブロック処理およびADSの実行パスに対する明確な基準点を確立した。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図5. WinRARの解凍を実行した後に復元された呼び出しシーケンス。ADSのコードパスを特定するために使用された。

ヘッダーの解析とCRC32検証

WinRARは、各RAR5ブロックを処理する際、ブロックヘッダーを読み取り、整合性フィールドを検証し、ブロックタイプ固有のハンドラに処理を委譲します。ブロック処理のエントリポイントと関連するヘッダー解析ロジックを図6-10に示します。ここでは、WinRARがファイルポインタを現在のブロックオフセットに設定し、ヘッダータイプやサイズを含む初期ヘッダーバイトを読み取り、CRC32を使用してヘッダーの整合性を検証してから処理を続行します。

検証が成功すると、フラグ、展開後のサイズ、圧縮方式、およびオプションのチェックサムなどの追加のヘッダーフィールドを解析します。その後、ブロック本文を処理します。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図6. 抽出時のブロック処理の開始点。
CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図7. アーカイブファイルポインタの設定とヘッダー解析への移行。
CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図8. 初期ヘッダーバイトの解析とヘッダーCRC32の検証。

リバースエンジニアリングの結果、CRC32ルーチンの動作は、標準的なzlibスタイルのCRC32実装と一致していることが確認された。実質的に、このCRC32チェックは整合性チェックの役割を果たしている。ヘッダーフィールドが変更された場合、WinRARがヘッダーを受け入れ、処理を継続できるように、埋め込まれたCRC32を更新する必要がある。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図9. 整合性チェック時に使用されるCRC32の実装詳細(テーブル駆動型)。

CRC32ヘッダーの検証が完了すると、パーサーは展開後のサイズ、圧縮方式、その他の属性など、残りのヘッダー情報の抽出へと進みます。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図10. 追加のヘッダーフィールド(サイズ、フラグ、圧縮方式、およびオプションのチェックサム)の解析。

ヘッダーの解析と検証が完了すると、WinRARは解析されたヘッダーのタイプとフラグに基づいてブロック本文を処理します。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図11. 抽出時にファイルの内容を解凍して書き込むループ。

CVE-2025-8088 では、WinRAR が ADS レコードを処理する Service ブロックハンドラに処理を委譲する前に、ヘッダーの整合性検証が実施されます。

サービスブロック(「STM」)によるADSの作成

WinRARがServiceブロックを検出すると、ADS処理パスが実行されます。Serviceブロックはブロックタイプ値3を使用します。Serviceブロックが検出されると、WinRARはそれをサービスヘッダーハンドラに送信します。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図12. ADSレコードを格納できるディスパッチングサービスブロック(タイプ3)。

サービスハンドラ内で、WinRARはサービス名を確認します。サービス名が「STM」と一致する場合、そのレコードはADSペイロードとして扱われ、実装はADS作成ルーチンに移行します。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図13. サービスレコードの送信:サービス名が「STM」と一致すると、WinRARはADSの作成を開始する。

その後、WinRARはサービスレコードからストリーム名を取得し、それをベースファイルパスと組み合わせることで、最終的なADSターゲットを構築します。バージョン7.13以前のバージョンでは、分析の結果、ストリーム名のサニタイズが不十分であることが判明しており、これにより、トラバーサルシーケンスが結果として得られるターゲットパスの解決に影響を及ぼす可能性があります。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図14. サービスレコードからADSストリーム名を取得する。
CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図15. ベースパスとストリーム名を組み合わせてADSパスを形成する。

ターゲットを構築した後、WinRARはAPI出すヘルパールーチンを介してストリームを作成し、WriteFileを使用してADSバイトを書き込みます。解決されたパスがユーザーが選択した抽出ディレクトリの外にある場合、WinRARは宛先ストリーム/ファイルを作成し、そこに攻撃者が制御するコンテンツを書き込みます。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図16. 抽出中にADSの作成を開始する呼び出し箇所。
CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図17. ファイル作成ルーチンに処理を委譲するADS作成ヘルパー。
CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図18. ADSストリームを作成するために、構築されたパスを引数としてWindowsAPI を呼び出した。
CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図19. WriteFile を使用して、攻撃者が制御する ADS コンテンツを新しく作成されたストリームに書き込む。

要約すると、ADS抽出ワークフローには、セキュリティに関連する2つの問題点が存在します。第一に、ADSストリーム名が十分にサニタイズされていないため、トラバーサルシーケンスによって結果としてのターゲットパスが影響を受ける可能性があります。第二に、WinRARは、アーカイブが管理するメタデータから導出されたパスを使用してCreateFileW()を呼び出すことで、ADSストリームを作成しています。

これらの条件が組み合わさることで、細工されたアーカイブは、CreateFileW() のターゲットを意図された抽出ディレクトリの外に誘導し、攻撃者が制御するコンテンツを攻撃者の意図する場所に書き込むことが可能になります。書き込み先が永続化に関連するディレクトリ(例えば、ユーザーの「スタートアップ」フォルダなど)である場合、この書き込み操作により、ペイロードの種類やシステム構成によっては、次回のログオン時または再起動時に、後続のコードが実行される可能性があります。

攻撃シナリオ

CVE-2025-8088は、攻撃者がユーザーを誘導し、脆弱性のあるバージョンのWinRARを使用して細工されたRARアーカイブを解凍させるようなシナリオにおいて、実際に悪用される可能性があります。典型的な攻撃経路としては、フィッシングなどのソーシャルエンジニアリングが挙げられ、これにより被害者は悪意のあるアーカイブを信頼し、重要なシステム上で解凍を実行してしまうことになります。

このアーカイブには、ADS(「STM」)サービスレコードが埋め込まれています。そのストリーム名は、トラバーサルセマンティクスを導入するように構成されています。NTFS上での抽出時、WinRARはADSレコードを処理し、アーカイブが管理するメタデータから抽出先のストリームパスを導出します。このADSパスの構築には十分な制約が設けられていないため、解決されたターゲットがユーザーが選択した抽出ディレクトリの外側、例えばユーザーのスタートアップフォルダなどの重要な場所に配置されてしまう可能性があります。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図20. エンドツーエンドの攻撃フロー:配信、脆弱性のあるWinRARでの抽出、およびスタートアップフォルダを介した永続化。

概念実証

To demonstrate CVE-2025-8088, our graduate fellows prepared a crafted RAR archive file containing an ADS (“STM”) service record with attacker-controlled fields. This archive is structured with an ADS stream name that includes traversal sequences. This structure influences the final target location during ADS handling, including the path passed to CreateFileW() when the stream is created. To ensure that WinRAR accepts the modified metadata and reaches the ADS-processing path, the relevant header CRC32 values are recomputed so the archive passes header integrity validation.

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図21. ADSパスを誘導するために使用される、細工されたアーカイブ内の攻撃者が制御するフィールドの例。

脆弱性のあるWinRARのバージョンが、細工されたアーカイブの解凍中にADS処理ルーチンに入ると、本来ユーザーが選択した解凍先ではなく、事前に指定された保存先に攻撃者が制御するコンテンツを書き込んでしまいます。解凍後、ペイロードの実行可否は、その形式と、事前に指定された保存先の実行セマンティクスによって決まります。例えば、次回のログイン時や再起動時にコンテンツが実行される可能性のある場所などが該当します。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図22. 概念実証(PoC)の実演:脆弱性のある抽出経路を通じてStartupに書き込まれたペイロード。

修復

CVE-2025-8088 のリスクは、管理対象のエンドポイントすべてで WinRAR を修正済みのバージョン(7.13 以降)に更新することで軽減できます。タイムリーな更新が不可能な場合は、次のような代替対策を検討する必要があります:

  • 必要がない場合は、アーカイブツールにおけるADSの保持機能を制限または無効にする
  • 信頼できないアーカイブの抽出を隔離された環境に限定する
  • 最小権限の原則を徹底する(管理者権限で抽出ツールを実行しない)
  • アーカイブの展開ワークフローに起因する予期せぬ書き込みがないか、スタートアップフォルダなどの重要なディレクトリを監視する

vulnerability detection 早期にvulnerability detection するため、MetaDefender 、脆弱性のあるWinRARのバージョンを実行しているデバイスを特定し、必要な更新プログラムを強調表示することで、緊急の修正作業を支援します。1,100以上のアプリケーションに対応する堅牢な脆弱性およびパッチ管理機能により、パッチが適用されていない、または古いバージョンのOSやサードパーティ製アプリケーションを実行しているエンドポイントを事前に特定し、推奨される修正策を提供します。

「Vulnerability Management 」Vulnerability Management 、管理者は脆弱性の露出を迅速に検知し、修正の優先順位を決定し、パッチ適用済みのリリースへのアップグレードを推進することが可能になります。これにより、CVE-2025-8088 のようなアーカイブベースのファイル書き込み攻撃や、同様のエンドポイントベースの脅威によるリスクを低減できます。

CVE-2025-8088 技術的分析:WinRARにおけるADSを介した任意のファイル書き込み
図23.MetaDefender Endpoint 、脆弱性のあるWinRARをEndpoint 、修正済みのバージョンへの更新を推奨します。

OPSWATで最新情報をお届けします!

今すぐ登録して、当社の最新情報、ストーリー、イベント情報などを受け取りましょう。