7-Zip の脆弱性は2024年6月の 24.07 から2026年10月の 26.04 までに、版ごとに修正が続いている。History.txt と CVE レコードで数えると、この間に直った CVE は18件。最新版は 26.04(2026-10-05) で、7-Zip には自動更新が無いため、手で入れ替えない限り古い版が残る。この記事では、どの版で何が直ったかを一次資料で並べ、Windows・Linux で版を確かめるコマンドを陽性・陰性の両方で実行して載せる。
CVES PER RELEASE版ごとの修正
26.01 で8件。7-Zip の修正は版ごとに波がある
修正した CVE の件数
- 124.07
- 124.08
- 124.09
- 425.00
- 125.01
- 026.00
- 826.01
- 126.02
- 126.03
- 026.04
30秒でわかる 7-Zip の脆弱性(2026-10-18時点)
- ・最新版:26.04。番号付きの修正で最も新しいのは 26.03 の CVE-2026-58052(Mark-of-the-Web の回避)
- ・多い型:形式ごとの読み込み処理のメモリ破壊、Mark-of-the-Web の回避、シンボリックリンクによるディレクトリ外への書き込み
- ・攻撃の前提:細工したアーカイブを開かせること。サーバーで受け取ったファイルを自動で展開していれば、人の操作なしで届く
- ・悪用の確認:CISA KEV に載るのは CVE-2025-0411 だけ(2026-10-16 版)
まずやること
・Windows:7-Zip の「ヘルプ」→「バージョン情報」で版を見て、26.04 より古ければ公式サイトのインストーラで入れ直す
・Linux:下の確認スクリプトで 7zz・7z の版を見る。apt の 7zip は配布元の修正を確かめ、無ければ公式の 7zz を使う
・会社の端末:資産管理で 7-Zip の版を集める。ほかのアプリに同梱された 7z.dll は、そのアプリの更新を待つ
7-Zip の 7z.dll・7z.so はほかのソフトに部品として組み込まれることがあり、依存の連鎖として見る視点はサプライチェーン攻撃とは|手口・防御ツール比較・npm 12の新機構まで実践解説にまとめている。
7-Zip の脆弱性の時系列(2024〜2026年の CVE と修正版)
修正版の公開日は 7-Zip 26.04 に同梱の History.txt、CVE の公表日と深刻度は CVE レコードから取った。下の10版のうち、修正版が先に出て CVE があとから公表されたものが大半で、CVE-2025-11002 は 25.00 の公開から半年後に公表されている。例外は CVE-2026-58052 で、公表が修正版より2か月早い。
| 修正版(公開日) | CVE | 中身(CVE レコードの題名・説明から) | CVE 公表日 |
|---|---|---|---|
| 24.07(2024-06-19) | CVE-2024-11477 | Zstandard 展開の整数アンダーフロー。CVSS 3.0 で 7.8 | 2024-11-22 |
| 24.08(2024-08-11) | CVE-2024-11612 | CopyCoder の無限ループ(DoS) | 2024-11-22 |
| 24.09(2024-11-29) | CVE-2025-0411 | 入れ子のアーカイブで Mark-of-the-Web が継がれない。CISA KEV に 2025-02-06 掲載 | 2025-01-25 |
| 25.00(2025-07-05) | CVE-2025-11001・11002 | ZIP のシンボリックリンクでディレクトリ外へ書き込む。CVSS 3.0 で 7.0 | 2025-11-19・2026-01-23 |
| 25.00(同上) | CVE-2025-53816・53817 | RAR5 と Compound 形式の不正な入力でクラッシュ | 2025-07-17 |
| 25.01(2025-08-03) | CVE-2025-55188 | 展開時のシンボリックリンクの扱い。-snld20 で旧来の動きに戻せる |
2025-08-08 |
| 26.01(2026-04-27) | CVE-2026-48092〜48112 の8件 | NTFS・SquashFS・UEFI・UDF・WIM・Ar の各ハンドラ。最大は NTFS の CVE-2026-48095(CVSS 3.1 で 8.8) | 2026-06-05 |
| 26.02(2026-06-25) | CVE-2026-14266 | XZ 展開のヒープバッファオーバーフロー。CVSS 3.0 で 7.0 | 2026-07-29 |
| 26.03(2026-09-03) | CVE-2026-58052 | RAR5 の代替データストリーム名で Mark-of-the-Web を上書きされる(Windows) | 2026-06-28 |
| 26.04(2026-10-05) | 番号なし | 「Some bugs and vulnerabilities were fixed.」とだけある | — |
26.01 の8件は GitHub Security Lab の報告で、影響範囲の下限が 9.18(2010-11-02)まで遡るものがある。長く残っていた読み込み処理の欠陥が、まとめて見つかった形だ。CVE-2026-58052 は、CVE レコードが「26.01 まで」と書く一方、History.txt は 26.03 の修正として載せている。26.02 の扱いは2つの資料で一致しないので、26.03 以上に上げておくのが確実な線になる。
何が起きたか:7-Zip の脆弱性に多い3つの型
形式ごとの読み込み処理のメモリ破壊
7-Zip は ZIP・7z だけでなく、NTFS・SquashFS・UEFI・WIM のようなディスクイメージも開ける。形式ごとに読み込み処理(ハンドラ)があり、細工したファイルの値でバッファの大きさを読み違えると、ヒープの外を読んだり書いたりする。CVE-2026-48095 は NTFS の圧縮単位の計算でシフト量が32に達し、確保が小さくなるという欠陥だ。CVE レコードは「任意のコード実行かクラッシュにつながりうる」と書いている。Linux 版も同じコードから作られるので、この型は OS を問わない。
Mark-of-the-Web の回避(Windows)
MARK OF THE WEBMotW の受け渡し
展開で印が途切れると、開くときの警告が出ない
-
ダウンロード
ブラウザが Zone.Identifier を付ける
-
7-Zip で展開
中のファイルへ印を継ぐ
-
展開したファイル
印があれば警告の対象
-
開く
SmartScreen・保護ビューが確認
Windows はネットから落としたファイルに Zone.Identifier という印(Mark-of-the-Web)を付け、開くときに SmartScreen や Office の保護ビューで確認する。展開ソフトが中のファイルへこの印を継がないと、警告なしに開いてしまう。CVE-2025-0411 は入れ子のアーカイブで印が途切れる欠陥で、悪用が確認されて CISA KEV に載った。CVE-2026-58052 では、RAR5 の中に :Zone.Identifier:$DATA という名前のストリームを仕込むと印を「ゾーン0」で上書きされる。7-Zip の除外が、完全一致の名前しか見ていなかったためだ。
シンボリックリンクによるディレクトリ外への書き込み
CVE-2025-11001・11002 は、ZIP 内のシンボリックリンクをたどって、展開先の外へファイルを書かせる欠陥だ。CVE レコードは「サービスアカウントの権限でコードを実行されうる」と書いており、アップロードされたアーカイブをサーバーで自動展開している構成で効いてくる。25.01 ではリンクの扱いがさらに厳しくなり、旧来の動きが要るときだけ -snld20 で外せる。展開の経路の考え方はso-vits-svc 脆弱性CVE-2026-65701|更新停止2年9か月のパストラバーサルと対策でも扱った。
7-Zip のバージョン確認(Windows・Linux)
Windows
画面では 7-Zip File Manager の「ヘルプ」→「バージョン情報」。PowerShell では次の2つで読める。
# アンインストール情報に登録された 7-Zip の名前と版(EXE 版・MSI 版の両方)
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' | Where-Object DisplayName -like '7-Zip*' | Select-Object DisplayName, DisplayVersion
# 既定の場所に入った 7z.exe のファイルの版
(Get-Item "$env:ProgramFiles\7-Zip\7z.exe").VersionInfo.ProductVersion
Windows の手順は PowerShell の標準のコマンドレットで組んだもので、Windows の実機では未検証。インストール先を変えている場合は2行目のパスを直す。
Linux
Linux には「7-Zip」が3系統ある。どれが入っているかでコマンド名と版が違う。
| 観点 | 公式の 7zz | Ubuntu 24.04 の 7zip パッケージ |
p7zip |
|---|---|---|---|
| 作り手 | 7-Zip の作者(21.01 から Linux 版) | 7-Zip を Debian・Ubuntu がパッケージ化 | 別の開発者による移植 |
| コマンド名 | 7zz / 7zzs(静的リンク) |
7z / 7za / 7zr |
7z / 7za |
| 実測した版 | 26.04 | 23.01(23.01+dfsg-11) | 16.02(Ubuntu 22.04 の p7zip-full) |
| 更新のしかた | 自分で tar.xz を入れ替える | 配布元が修正を出したときだけ apt で届く | SourceForge の配布は 16.02 が最後 |
Ubuntu 24.04 の p7zip-full は 7zip へ移るための空のパッケージ(16.02+transitional.1)になっている。次のスクリプトは PATH にある 7-Zip 系のコマンドをすべて呼び、1行目の版を 26.04 と比べる。
min=26.04
for c in 7zz 7zzs 7z 7za 7zr; do
p=$(command -v "$c") || continue
v=$("$c" 2>/dev/null | grep -m1 -o -E '^7-Zip[^:]*' | grep -o -E '[0-9]+\.[0-9]+' | head -n1)
if [ -z "$v" ]; then echo "$c ? 版を読めない $p"; continue; fi
if [ "$(printf '%s\n%s\n' "$min" "$v" | sort -V | head -n1)" = "$min" ]; then s="26.04以上"; else s="26.04より古い"; fi
printf '%s\t%s\t%s\t%s\n' "$c" "$v" "$s" "$p"
done
Ubuntu 24.04 で、apt の 7zip だけを入れた状態(陽性)、公式の 7zz 26.04 だけを ~/.local/bin に置いた状態(陰性)、旧 p7zip 16.02 の 7za だけを /opt/p7zip に置いた状態で、それぞれ PATH を絞って実行した結果がこれだ(root で実行)。7-Zip が何も無いときは何も出ない。
7z 23.01 26.04より古い /usr/bin/7z
7za 23.01 26.04より古い /usr/bin/7za
7zr 23.01 26.04より古い /usr/bin/7zr
7zz 26.04 26.04以上 /root/.local/bin/7zz
7za 16.02 26.04より古い /opt/p7zip/7za
このスクリプトが見ているのはPATH にあるコマンドの版だけで、脆弱性の判定ではない。「26.04より古い」と出ても、配布元が修正をバックポートしていれば影響しないことがある。逆に何も出なくても、ほかのアプリが同梱した 7z.dll・7z.so は見ていないので、安全とは言えない。
7-Zip の更新手順と対策
Windows:インストーラを入れ直す
7-Zip 本体には更新を自動で入れる仕組みが無い。公式サイト(7-zip.org)から、今と同じビット数(64ビットなら x64)のインストーラを落として入れ直す。winget で管理しているなら winget upgrade --id 7zip.7zip でも更新できる(このコマンドは未検証)。社内の端末は資産管理ツールで上の PowerShell の版を集めて、配布の対象を決める。
Linux:公式の 7zz を置く
apt の 7zip に修正が来ていないときは、公式の Linux 版を自分のディレクトリに置く。Ubuntu 24.04 で掲載どおりに実行して、26.04 が起動するところまで確かめた。
mkdir -p ~/.local/bin
curl -fL -o /tmp/7z2604-linux-x64.tar.xz https://sourceforge.net/projects/sevenzip/files/7-Zip/26.04/7z2604-linux-x64.tar.xz/download
tar -xJf /tmp/7z2604-linux-x64.tar.xz -C ~/.local/bin 7zz
~/.local/bin/7zz | head -n 2
1行目に 7-Zip (z) 26.04 (x64) : Copyright (c) 1999-2026 Igor Pavlov : 2026-10-05 と出れば入っている。arm64 機は 7z2604-linux-arm64.tar.xz を使う。7zz を置いても apt の 7z は 23.01 のまま残るので、スクリプトやジョブが 7z を呼んでいるなら呼び出し先を 7zz に変える。
使い方での対策
・出どころの分からないアーカイブ、とくにディスクイメージ(NTFS・SquashFS・WIM など)を開かない
・サーバーで受け取ったアーカイブを展開するなら、専用の権限の低いユーザーと隔離した展開先で動かす
・展開したファイルを開く前に、Windows のファイルのプロパティの「全般」タブに、ほかのコンピューターから取得したファイルだというセキュリティの表示が出るかを見る(印が継がれていれば出る)
影響範囲:自分で入れた 7-Zip・配布元のパッケージ・同梱された 7z.dll
WHERE IT LIVES影響範囲
7-Zip は3か所に入っている
-
1.自分で入れた 7-Zip
Windows のインストーラ・Linux の 7zz。公式の最新版に入れ替える
-
2.ディストリのパッケージ
apt の 7zip・旧 p7zip。配布元の修正を確かめる
-
3.ほかのアプリが同梱した 7z.dll・7z.so
そのアプリの更新を待つ。版のコマンドでは見えない
影響を受けるのは、修正版より古い 7-Zip で細工したファイルを開いた場合だ。番号付きの修正をすべて含むのは 26.03 以上で、26.04 はその後の未公表の修正も含む。CISA KEV に載るのは CVE-2025-0411 の1件で、CISA が示した対応の期限は 2025-02-27 だった。ほかの CVE は KEV に載っておらず、悪用の確認は公表されていない。悪用の事例を扱った記事としてLangflow CVE-2026-0770解説|CISA KEV5件目のAIエージェント基盤RCEと確認コマンドがある。
Debian・Ubuntu では、パッケージの版と、配布元の変更履歴に CVE の修正が書かれているかを見る。3行目は /usr と /opt の下にある 7z.so・7z.dll を探す。
dpkg-query -W -f='${Package}\t${Version}\t${Status}\n' 7zip 7zip-standalone p7zip p7zip-full 2>/dev/null | grep 'install ok installed'
zcat /usr/share/doc/7zip/changelog.Debian.gz | grep -i cve
find /usr /opt -xdev \( -name '7z.so' -o -name '7z.dll' \) 2>/dev/null
Ubuntu 24.04 で 7zip を入れた状態では、1行目が 7zip 23.01+dfsg-11 install ok installed、3行目が /usr/lib/7zip/7z.so を返した(陽性)。2行目は何も返さず、変更履歴に CVE の修正の記載は無かった。7zip を外すと3行とも何も出なくなり(陰性)、/opt の下に 7z.dll を置くとそのパスが出た。
find が拾うのはファイル名が 7z.so・7z.dll のものだけで、名前を変えて組み込んだライブラリや、実行ファイルへの静的リンクは見えない。ここで見つかった 7z.dll の版は、そのアプリの配布元が出す更新で直るのを待つことになる。
参照ソース
・7-Zip 26.04(SourceForge の公式配布) — 同梱の History.txt・readme.txt(2026-10-18 時点)
・ip7z/7zip DOC/src-history.txt — ソースの変更履歴(26.04 まで)
・CVEProject/cvelistV5 — CVE-2024-11477 から CVE-2026-58052 までの各レコード(2026-10-18 取得)
・cisagov/kev-data — CISA KEV の 2026.10.16 版
・GitHub Security Lab GHSL-2026-140 — CVE-2026-48095 の報告(CVE レコードの参照先)
・ZDI-26-444 — CVE-2026-14266 の報告(CVE レコードの参照先)





