7-ZipのNTFSアーカイブ処理の脆弱性CVE-2026-48095

カテゴリ
脆弱性の公表
タグ
国外
目次
  1. 脆弱性の内容
    1. NTFS処理のバッファの過小確保
    2. サンプルの展開ツールと他の形式
  2. 時系列
  3. 対象の製品と版
  4. 悪用の状況
  5. 修正と回避策
  6. 未公表の事項
  7. 注
  8. 出典
  9. 更新記録
  10. 関連記事

GitHub Security Labの2026年5月22日のアドバイザリによると、7-Zip 26.00のNTFSアーカイブ処理にヒープバッファオーバーフロー(CVE-2026-48095)があり、任意のコード実行やアプリのクラッシュに悪用されうる⁠[17]。別のアドバイザリは、SquashFS・UDF・UEFI・WIM・Arなどの処理とサンプルアプリの問題8件を挙げた⁠[18]。修正は26.01に含まれている⁠[17、18]。

脆弱性の内容

表1:GitHub Security Labが公表した問題とCVE
CVE概要成立条件CVSS資料
CVE-2026-48095(GHSL-2026-140)NTFSの処理のヒープバッファオーバーフロー(CWE-787、CWE-190)細工したイメージ内の圧縮ファイルの展開・テスト。イメージを開く以外の利用者の操作は要らない8.8(GitHub Security Lab、CVE記録)⁠[8、17]
CVE-2026-48092(GHSL-2026-116)SquashFSの断片オフセットの整数オーバーフローによるヒープメモリの開示(CWE-125)32ビット版6.5(GitHub Security Lab)、4.3(CVE記録)⁠[10、18]
CVE-2026-48101(GHSL-2026-117)UEFIカプセルの未初期化ヒープメモリの開示。最大約1 GiBを展開先のファイルに書き出す(CWE-908)切り詰めた.scapファイル6.5(GitHub Security Lab、CVE記録)⁠[11、18]
CVE-2026-48102(GHSL-2026-118)UDFの最大3バイトの境界外読み取り(CWE-125)-3.1(GitHub Security Lab、CVE記録)⁠[12、18]
CVE-2026-48103(GHSL-2026-119)WIMのセキュリティ記述子のoff-by-oneの境界外読み取り(CWE-125)-3.5(GitHub Security Lab)、4.3(CVE記録)⁠[13、18]
CVE-2026-48104(GHSL-2026-120)SquashFSの未初期化ヒープの読み取り(CWE-908、CWE-125)-4.2(GitHub Security Lab、CVE記録)⁠[14、18]
CVE-2026-48111(GHSL-2026-121)UEFIの依存式のoff-by-oneの境界外読み取り(CWE-125)-3.5(GitHub Security Lab)、4.3(CVE記録)⁠[15、18]
CVE-2026-48112(GHSL-2026-122)ArのBSD SYMDEFの解析の4バイトの境界外読み取り(CWE-190、CWE-125)-3.5(GitHub Security Lab)、6.5(CVE記録)⁠[16、18]

NTFS処理のバッファの過小確保

GitHub Security LabのGHSL-2026-140によると、CInStreamのGetCuSize()は圧縮単位のバッファの大きさを32ビットのシフトで求めている⁠[17]。NTFSのブートセクタの解析が受け付けるクラスタサイズは、2の30乗バイトまでである⁠[17]。細工したNTFSイメージがClusterSizeLogを28以上にし、圧縮データの属性のCompressionUnitを4にすると、シフト量が32に達する⁠[17]。これはC++では未定義動作である⁠[17]。

GitHub Security Labの説明では、LZNT1圧縮を使うNTFSで、_inBufはディスクから読んだ圧縮データを、_outBufは展開後のデータを持つ⁠[17]。どちらも圧縮単位1つ分の大きさであるべきところ、x86とx64のどちらでも、未定義動作によって_inBufは1バイトしか確保されない⁠[17]。続くReadStream_FALSEが、攻撃者の制御する256 MBのデータをこのバッファに書き込み、最初の読み込みで溢れる⁠[17]。

リリース版と同じコード生成の/O1ビルドをデバッガで解析した結果では、ストリームのオブジェクト(CInStream)が_inBufの304バイト後ろに確保されていた⁠[17]。1回目のRead()がvtableのポインタを上書きし、2回目のRead()は壊れたvtableを通じて呼び出される⁠[17]。GitHub Security Labは、これをvtableの乗っ取りとした⁠[17]。

  • x86とx64の両方のビルドが影響を受ける⁠[17]。
  • 32ビット版では_inBufと_outBufがともに小さく確保され、ヒープのオーバーフローに必ず至る⁠[17]。
  • 64ビット版は_outBufに8 GBを確保しようとし、確保が成功する環境(16 GB以上のRAMを持つ現在の一般的なシステム)でオーバーフローに至る⁠[17]。
  • GitHub Security Labは、64ビット版での確保の成功を64 GBの機械で確かめた⁠[17]。
  • メモリの少ない環境では確保に失敗し、影響がサービス拒否に限られることがある⁠[17]。
  • NTFSの処理は標準の7z.dllで有効で、拡張子.ntfsと.imgに登録されている⁠[17]。
  • 拡張子に合う処理が開けなかったファイルは署名による判定でNTFSの処理に回り、.7z・.zip・.rarを含むどの拡張子でも開かれる⁠[17]。
  • Windowsでは、書き込み先の範囲に未割り当てのページかガードページがあるとReadFileが失敗するため、攻撃者はヒープの配置を整える必要がありうる⁠[17]。

サンプルの展開ツールと他の形式

GitHub Security LabのGHSL-2026-115〜122のアドバイザリによると、GHSL-2026-115はLZMA SDKのサンプル展開ツール7zDec(C/Util/7z/7zMain.c)のパストラバーサルである⁠[18]。任意のファイル書き込みと、リモートでのコード実行に至りうる⁠[18]。

GitHub Security Labは、xモードが展開先のパスを検証せず、eモードは影響を受けないと説明した⁠[18]。CVEの欄には、番号の代わりに「Sample app」と書かれている⁠[18]。7-Zip本体のC++の展開処理には、IsSafePathなどの保護がある⁠[18]。

GHSL-2026-117で書き出される未初期化のヒープについて、GitHub Security Labは、長く動くGUIのセッションでは以前に処理したアーカイブの断片やファイルパス、展開した内容が含まれうるとした⁠[18]。暗号化アーカイブのパスワードも、含まれうるものに挙げた⁠[18]。

目次へ

時系列

時系列
日付主体内容資料
2026年4月21日GitHub Security LabGHSL-2026-115〜122をSourceForgeの非公開のissueで報告した⁠[18]
2026年4月24日GitHub Security LabGHSL-2026-140をSourceForgeの非公開のissueで報告した⁠[17]
2026年4月27日7-Zip修正を含む26.01を公開した⁠[2、17、18]
2026年5月20日GitHub(CNA)CVE-2026-48095を予約した⁠[8]
2026年5月22日GitHub Security LabGHSL-2026-140とGHSL-2026-115〜122のアドバイザリを公表した⁠[17、18]
2026年6月5日GitHub(CNA)CVE 8件の記録を公開した⁠[8、10、11、12、13、14、15、16]
2026年6月5日NIST(NVD)CVE-2026-48095の記録を公開した⁠[9]
2026年6月8日CISA(ADP)CVE-2026-48095の記録にSSVCの評価を加えた⁠[8]
2026年6月8日Amazon Web ServicesAmazon Linux 2023の7zipをALAS2023-2026-1820で修正した⁠[7]
2026年6月23日SUSESUSE-SU-2026:22347-1を公開した⁠[6]
2026年6月30日SUSESUSE-SU-2026:2696-1を公開した⁠[6]

目次へ

対象の製品と版

7-Zipは、NTFS・SquashFS・UDF・UEFI・ARなどを、展開だけに対応する形式として扱う⁠[21]。GitHub Security Labは、GetCuSize()の計算がNTFSの圧縮ストリームへの対応を入れたときからあるとした⁠[17]。

表2:7-Zipの影響を受ける版
製品影響を受ける版修正版資料
7-Zip(CVE-2026-48095)26.00以下26.01⁠[8、17]
7-Zip(CVE-2026-48102)9.11以上26.01未満26.01⁠[12]
7-Zip(CVE-2026-48104、CVE-2026-48111〔注2〕)9.18以上26.01未満26.01⁠[14、15]
7-Zip(CVE-2026-48101)9.21以上26.01未満26.01⁠[11]
7-Zip(CVE-2026-48092)9.34以上26.01未満。GitHub Security Labは9.18以降の32ビット版とし、64ビット版は影響を受けないとした26.01⁠[10、18]
7-Zip(CVE-2026-48103、CVE-2026-48112〔注3〕)9.34以上26.01未満26.01⁠[13、16]

NVDは、CVE-2026-48095を26.01より前の7-Zipに当て、CVSSはGitHubの評価を「Secondary」として載せた⁠[9]。

表3:配布元の対応状況
配布元状態修正版・アドバイザリ資料
Debian(7zip、bookworm)fixed22.01+really26.01+dfsg-0+deb12u1⁠[3]
Debian(7zip、forky・sid)fixed26.05+dfsg-1⁠[3]
Debian(7zip、trixie)vulnerable(no-dsa、Minor issue)25.01+dfsg-1~deb13u2が脆弱⁠[3]
Debian(p7zip、bullseye)fixed16.02+really26.01+dfsg-0+deb11u1(DLA-4681-1)⁠[3、4]
Ubuntu(7zip、22.04 LTS〜26.10)Needs evaluation-⁠[5]
SUSE(7zip)修正パッケージあり7zip >= 26.01-150400.9.6.1(SUSE-SU-2026:22347-1、SUSE-SU-2026:2696-1)⁠[6]
Amazon Linux(7zip、Amazon Linux 2023)FixedALAS2023-2026-1820⁠[7]
Amazon Linux(p7zip、Amazon Linux 2 Extra)No Fix Planned-⁠[7]

Ubuntuの優先度はMediumである⁠[5]。SUSEは重要度をimportant、Amazon LinuxはImportantとし、CVSSをそれぞれ独自に評価した〔注1〕⁠[6、7]。

目次へ

悪用の状況

GHSL-2026-140は、512 MBの疎なNTFSイメージを作るPoC生成スクリプトgen_ntfs_sparse.pyと、UBSanでの検証結果を載せた⁠[17]。@ITは、既存のNTFSフォーマットツールが64KB超のクラスタサイズに対応していないため、PoCはMFT構造などを個別に生成したと報じた⁠[20]。

CISAのADP(Vulnrichment)は、CVE-2026-48095をSSVCで評価した⁠[8]。悪用(Exploitation)は「poc」、自動化(Automatable)は「no」、技術的な影響(Technical Impact)は「total」である⁠[8]。

目次へ

修正と回避策

開発元の更新履歴は、26.01の項に「Some bugs and vulnerabilities were fixed.」と書き、CVE番号ごとに問題の処理と種類を記している⁠[1]。SourceForgeのフォーラムでの26.01の告知は、変更点としてLinux版の巨大ページへの対応、-spoスイッチの追加、「some bugs were fixed」を挙げた⁠[2]。

窓の杜は、7-Zipには自動更新機能がないと報じた⁠[19]。7-Zipの最新版は、11月6日の26.06である⁠[21]。

目次へ

未公表の事項

  • 開発元が26.01で加えた修正の内容(コードの変更点)
  • CVE-2026-48095が攻撃に使われた事例の有無
  • 7z.dllを同梱する他社製品の対応

注

  • 〔注1〕SUSEとAmazon Linuxは、CVSS 3.1の値を、攻撃元区分をローカルとした7.8とした⁠[6、7]。SUSEはこれを、攻撃元区分をネットワークとしたCNAの8.8と並べて示した⁠[6]。
  • 〔注2〕CVE-2026-48111のCVE記録の説明文は対象を9.21〜26.00とし、GitHub Security Labも9.21からとした⁠[15、18]。
  • 〔注3〕CVE-2026-48112のCVE記録の説明文は、対象を9.18〜26.00とした⁠[16]。

出典

当事者

関係組織

公的機関

  • [8]CVE Program『CVE-2026-48095』(2026年6月5日公開、2026年6月8日更新)
  • [9]National Institute of Standards and Technology『CVE-2026-48095』(2026年6月5日公開、2026年6月17日更新)
  • [10]CVE Program『CVE-2026-48092』(2026年6月5日公開、2026年6月8日更新)
  • [11]CVE Program『CVE-2026-48101』(2026年6月5日公開)
  • [12]CVE Program『CVE-2026-48102』(2026年6月5日公開、2026年6月9日更新)
  • [13]CVE Program『CVE-2026-48103』(2026年6月5日公開、2026年6月8日更新)
  • [14]CVE Program『CVE-2026-48104』(2026年6月5日公開)
  • [15]CVE Program『CVE-2026-48111』(2026年6月5日公開、2026年6月8日更新)
  • [16]CVE Program『CVE-2026-48112』(2026年6月5日公開)

調査・観測

報道機関

背景資料

  • [21]Igor Pavlov『7-Zip』(公開日不明、2026年11月7日閲覧)

更新記録

  • 2026年5月27日:公開した。
  • 2026年5月28日:@ITの5月28日の記事(出典20)が伝えたPoCの作り方を「悪用の状況」に加えた。
  • 2026年5月29日:Amazon Linuxの5月29日公開のページ(出典7)を加え、Amazon Linuxの評価を「対象の製品と版」と注に記した。
  • 2026年6月5日:6月5日に公開されたCVE 8件の記録(出典8、10〜16)とNVDの記録(出典9)、Ubuntuのページ(出典5)を加え、「脆弱性の内容」の表1、「時系列」「対象の製品と版」と注を改めた。
  • 2026年6月8日:CISAがCVE-2026-48095の記録に加えたSSVCの評価(出典8)を「悪用の状況」に、ALAS2023-2026-1820(出典7)を「時系列」と「対象の製品と版」に加え、CVE-2026-48092・48103・48111の記録の6月8日の更新版(出典10、13、15)に表1と表2を合わせた。
  • 2026年6月9日:CVE-2026-48102の記録の6月9日の更新版(出典12)に表1と表2を合わせた。
  • 2026年6月17日:NVDの記録の6月17日の更新版(出典9)に「対象の製品と版」の記述を合わせた。
  • 2026年6月18日:Ubuntuのページの6月18日の更新版(出典5)に表3のUbuntuの行を合わせた。
  • 2026年6月23日:SUSEのSUSE-SU-2026:22347-1(出典6)を「時系列」と表3に加えた。
  • 2026年6月30日:SUSEのSUSE-SU-2026:2696-1(出典6)を「時系列」と表3に加えた。
  • 2026年9月11日:Amazon Linuxのページの9月11日の更新版(出典7)に表3のAmazon Linuxの行を合わせた。
  • 2026年11月6日:開発元の更新履歴の11月6日の版(出典1)と、最新版26.06を示す7-Zipのトップページ(出典21)を「対象の製品と版」と「修正と回避策」に加えた。

目次へ