SUSE Linuxの更新基盤「libzypp」に任意ファイル書き換えの脆弱性 CVE-2026-25707、修正版へ更新を
openSUSEやSUSE Linuxでソフトの導入・更新を担う「libzypp」に、悪意あるリポジトリのデータを細工するだけでサーバー上の重要ファイルを書き換えられる脆弱性(CVE-2026-25707、最大CVSS8.8)が判明。乗っ取りやサービス停止の恐れがあり、修正版が公開済みです。早急な更新を。
目次
openSUSEやSUSE Linuxでソフトの導入・更新を担う「libzypp」に、悪意あるリポジトリのデータを細工するだけでサーバー上の重要ファイルを書き換えられる脆弱性(CVE-2026-25707、最大CVSS8.8)が判明。乗っ取りやサービス停止の恐れがあり、修正版が公開済みです。早急な更新を。
Linuxの一種である「openSUSE」や、企業向けの「SUSE Linux Enterprise」で、ソフトの導入や更新を担う中核部品「libzypp(リブジップ)」に脆弱性が見つかりました。配布元(リポジトリ)から受け取るデータをほんの少し細工するだけで、パソコンやサーバー上の本来書き換えてはいけない重要なファイルを、攻撃者が上書きできてしまう欠陥です。共通脆弱性番号は CVE-2026-25707、深刻度は最大でCVSS 8.8(10点満点・NVD評価)。米国立標準技術研究所のNVDが2026年6月29日に詳細を公開しました。
皮肉に聞こえるかもしれませんが、これは「セキュリティ更新を当てるための仕組み」そのものに空いた穴です。Linuxでは、信頼した配布元から自動でソフトを取ってきて入れ替えるのが日常で、その作業はたいていシステムの最高権限(管理者権限)で動きます。だからこそ、ここを乗っ取られると被害が一気に広がります。開発元のSUSEは各製品向けに修正版の配布を始めており、利用者は早急な更新が求められます。
| 項目 | 内容 |
|---|---|
| 脆弱性番号 | CVE-2026-25707 |
| 対象ソフト | libzypp(openSUSE / SUSE Linux のパッケージ管理) |
| 種類 | パストラバーサル (保存場所を本来の範囲外へ逃がす欠陥) |
| 何が起きるか | 任意ファイルの上書き →サービス停止または権限昇格 |
| 深刻度(CVSS) | 最大8.8(NVD)/ 7.4(SUSE) |
| 修正 | libzypp 17.38系で対処 (各製品向け更新を配布中) |
※深刻度は評価機関で数値が分かれます。NVDは8.8、開発元のSUSEは7.4と評価しています。違いの理由は後述します。
この欠陥は誰に、どんな被害をもたらすのか
この穴を突けるのは、利用者が追加して信頼しているソフトの配布元(リポジトリ)を、自分の手で用意できる、あるいは横取りできる立場の攻撃者です。たとえば、メーカーや有志が提供する公式以外の追加リポジトリの運営者が悪意を持っていた場合や、そうしたリポジトリが乗っ取られた場合、さらには暗号化されていない配信経路に割り込んで通信をすり替えられる場合が当てはまります。社内で独自のミラー(複製配信サーバー)を立てている組織なら、そこを侵入の起点にされる構図も考えられます。
攻撃者は、リポジトリが配るソフト一覧の情報(メタデータ)に「../(ひとつ上の階層へ戻る記号)」を混ぜ込み、ソフトの取得時に、決められた保管場所の外へファイルを書き出させます。libzyppは取得したデータをいったん手元のキャッシュ用フォルダ(/var/cache/zypp/配下)にためますが、保存先のパスを示す値の検証が甘く、../../../../etc/passwd のような指定を許してしまうと、システムの根幹にあるファイルまで書き換えられてしまいます。
被害の本質は、「安全のための更新作業」が、そのまま乗っ取りの入口に変わる点にあります。更新作業は管理者権限で走るため、設定ファイルや自動実行の仕組みを上書きされれば、サーバーやパソコンの権限を丸ごと奪われたり(権限昇格)、起動に必要なファイルを壊されて動かなくなったり(サービス停止)します。一台ずつ手で更新する個人だけでなく、何百台ものサーバーへ同じ追加リポジトリを配っている組織ほど、被害が面で広がります。土台のソフトに空いた穴がシステム全体へ波及する点で、これは典型的なサプライチェーン(部品供給網)型のリスクです。当サイトのOSSサプライチェーン スキャナーでも、こうした「依存している土台ソフト」の弱点をまとめて点検する大切さを扱っています。
libzyppとは何か、自分は対象なのか
libzyppは、openSUSEやSUSE Linux Enterpriseで、ソフトの検索・取得・導入・更新・削除をまとめて受け持つ「ソフト管理の心臓部」です。利用者が画面やコマンドでよく使う zypper や、設定ツールの YaST は、内部でこのlibzyppを呼び出して動いています。ソフトの依存関係を解いたり、配布元の正しさを確かめたりする、いわば縁の下の力持ちです。
大事なのは「自分のパソコンやサーバーが対象かどうか」です。libzyppはSUSE系のLinux固有の部品で、別系統のLinuxは使う仕組みが異なります。ざっくりした目安は次のとおりです。
| 使っているLinux | ソフト管理の仕組み | 今回の影響 |
|---|---|---|
| openSUSE Leap / Tumbleweed | libzypp / zypper | 対象(更新を) |
| SUSE Linux Enterprise(SLES等) | libzypp / zypper | 対象(更新を) |
| SLE Micro / SUSE Linux Micro | libzypp / zypper | 対象(更新を) |
| Ubuntu / Debian | apt / dpkg | 非該当 |
| RHEL / Fedora / Rocky 等 | dnf / rpm | 非該当 |
つまり、UbuntuやDebian、Red Hat系を使っている人は、この脆弱性そのものの対象ではありません。逆に、openSUSEやSUSEのサーバーを業務で運用しているなら、まず自分の環境が当てはまると考えて対処を進めるのが安全です。
どうやってファイルが書き換えられるのか
仕組みはシンプルです。リポジトリは「どのソフトが、どこに、どんな名前で置いてあるか」をまとめた目録(メタデータ)を配ります。libzyppはこの目録を読み、書かれている場所からファイルを取ってきて、手元のキャッシュ用フォルダに同じ構造で並べます。ところが、目録に書かれた保存場所(location の値)に ../ を重ねた相対パスが入っていても、それをそのまま信じて処理していました。
開発元の不具合報告(bsc#1259802)には、攻撃イメージが端的に記されています。キャッシュの基点が /var/cache/zypp/(リポジトリ名) だと分かっていれば、目録に <location href="../../../../etc/passwd"> のような指定を仕込むことで、本来の保管場所をさかのぼって /etc/passwd(利用者アカウントの一覧ファイル)などを書き換えられる、というものです。しかも、リポジトリの署名を信頼済みで、データの照合値(チェックサム)さえ合っていれば、ソフト本体の改ざんを防ぐRPM署名の検証を経ずに任意のデータが書き込まれ得るとされています。
この脆弱性の分類は、保存先の経路を本来の範囲外へ逃がす「相対パストラバーサル」(CWE-23)です。修正は、目録の解析を担う2つの部品(該当コミットでは ContentFileReader.cc と RepomdFileReader.cc)で行われ、../ を含む「リポジトリの外を指す項目」を検出して警告し、その項目を取り込まずに捨てるよう改められました。
深刻度が「8.8」と「7.4」で割れている理由
同じ脆弱性でも、評価機関によって数値が違います。NVDは最大8.8(攻撃の難易度が低く、可用性=サービス継続への影響もありとみなす)、開発元のSUSEは7.4(攻撃成立には条件が重なり難易度が高い、可用性への影響はなしとみなす)と評価しています。この差は、「攻撃者がどれだけ簡単に条件をそろえられるか」の見立ての違いです。
実務上のポイントは、いずれの評価でも「悪意ある、あるいは乗っ取られたリポジトリを信頼してしまっている」状態が前提になることです。標準の公式リポジトリだけを使い、通信も暗号化されているなら、ただちに悪用される話ではありません。とはいえ、公式以外の追加リポジトリを足している環境は珍しくなく、その一つが侵害されれば現実の脅威になります。数値の大小よりも、「自分は信頼できない配布元を抱えていないか」を点検するほうが実益があります。
影響を受けるバージョンと修正版
| 対象 | 影響を受ける版 | 対応 |
|---|---|---|
| libzypp(アップストリーム) | 17.38.10 未満 (NVD基準) | 17.38系の修正版へ |
| openSUSE Leap / Tumbleweed | 更新前の版 | 配布パッケージを更新 |
| SUSE Linux Enterprise 15 / 16 | 更新前の版 | SUSE提供の更新を適用 |
アップストリーム(開発本流)のlibzyppは17.38系で修正され、各製品向けには更新パッケージが順次配布されています(たとえばSUSE-SU-2026:2590-1など)。配布の都合でパッケージの細かな版番号は製品ごとに異なるため、正確な対象・修正版はSUSEのCVEページで自分の製品を確認するのが確実です。
※同時期の更新では、設定ファイル(.repo)経由の別のパストラバーサル(CVE-2026-44942)など、リポジトリ処理まわりの修正も併せて取り込まれています。まとめて適用するのが安全です。
いま何をすべきか
最優先は修正版への更新です。openSUSEやSUSE Linuxでは、配布されている更新を適用すればlibzyppも新しくなります。コマンドで運用しているなら zypper refresh で目録を最新化し、zypper update(または zypper patch)で更新を当てるのが基本です。多数のサーバーを抱える組織は、どのホストが古いlibzyppのままかを一覧化し、外部の追加リポジトリを使っているサーバーから優先して更新すると効率的です。
すぐに更新できない場合は、被害の前提となる「信頼できない配布元」を減らすのが当面の守りになります。具体的には、公式以外で追加したリポジトリのうち本当に必要なものだけ残して棚卸しする、暗号化されていない経路(http://)のリポジトリは暗号化済み(https://)へ切り替える、社内ミラーを使う場合はそのサーバー自体の安全を見直す、といった対策です。普段意識しない「どこからソフトを取ってきているか」を一度点検しておくと、今回に限らず似た脅威への備えになります。
時系列
この脆弱性は、外部の攻撃者ではなくlibzyppの開発者自身(Michael Andres氏)が内部で見つけ、修正と更新配布まで進めたうえで公表されました。一般に詳細が広く知れ渡る前に修正が用意されていた点は、利用者にとっては前向きな材料です。主な流れは次のとおりです。
| 時期 | 出来事 |
|---|---|
| 2026年3月18日 | 開発元内部で問題を把握(bsc#1259802) |
| 2026年5月28日 | 不具合情報を一般公開 |
| 2026年6月上旬〜下旬 | 各製品向けに更新パッケージを順次配布 |
| 2026年6月29日 | NVDがCVE-2026-25707として詳細を公開 |
まとめ
CVE-2026-25707は、openSUSEやSUSE Linuxでソフトの導入・更新を担うlibzyppにあったパストラバーサルの欠陥です。悪意ある(または乗っ取られた)リポジトリが配る目録に ../ を仕込むだけで、管理者権限で動く更新処理を通じてシステムの重要ファイルを書き換え、権限奪取やサービス停止に至り得ます。すでに修正版が配布されているため、まずは更新の適用が要点です。
「更新を当てる仕組み」自体が穴になるという、土台ソフトならではのリスクです。どこからソフトを取ってきているかを点検し、信頼できない配布元を抱え込まない運用を、この機会に見直しておきたいところです。
よくある質問
openSUSEやSUSEを使っていますが、必ず危険なのですか?
悪用には「悪意ある、または乗っ取られたリポジトリを信頼している」状態が前提です。標準の公式リポジトリのみを使い、通信も暗号化されているなら、ただちに攻撃される話ではありません。ただし条件がそろえば任意ファイルの書き換えに至るため、構成にかかわらず修正版への更新を推奨します。
UbuntuやRed Hat系のLinuxも影響しますか?
いいえ。libzyppはopenSUSE / SUSE Linux系で使われる部品です。Ubuntu・Debianはapt、Red Hat系(RHEL・Fedora・Rocky等)はdnf/rpmという別の仕組みで動いており、このCVE-2026-25707の直接の対象ではありません。
どう対処すればよいですか?
配布されている更新を適用してlibzyppを最新版にしてください。コマンドなら zypper refresh のあと zypper update または zypper patch です。すぐ更新できない場合は、公式以外の追加リポジトリを棚卸しし、暗号化されていない経路のものを見直すと当面のリスクを下げられます。
すでに悪用されていますか?
本記事の時点で、実際に攻撃へ使われたという公的な報告(米CISAの「実際に悪用された脆弱性リスト」=KEVへの登録など)は確認していません。今回は開発元が内部で見つけ、修正を用意してから公表した経緯です。とはいえ深刻度は高いため、悪用が始まる前の早期更新が重要です。
更新履歴
- ▸2026年6月29日:初版公開(NVDによるCVE-2026-25707の詳細公開、SUSEの各更新を受けて作成)。
参照元

堀川 慎
Backend Engineer / AWS / Django / Go