本文へ移動
技術を、自社の仕事に。
判断と実行を助けるメディア

記事を検索

UbuntuでCVE対応済みかを確かめる pro fixの読み方

目次 · 6項目

「CVE-2026-XXXXに対応済みですか」という問い合わせに答えるとき、パッケージの版番号を眺めても、それが修正版なのかはすぐには分かりません。Ubuntuは、同じ上流の版番号のまま、修正を取り込んだ版(10.42-4ubuntu2.2 のような末尾の番号)を出すからです。

Ubuntuには、この確認のための pro fix というコマンドがあります。本記事では、2026年11月3日に公開されたUbuntuのセキュリティ通知 USN-8974-1(PCRE2の脆弱性)を例に、編集部の検証用コンテナで実際に pro fix を動かした結果をもとに、出力の読み方と注意点を整理します。

pro fixで分かること

pro fix は、Ubuntu Pro Client(pro コマンド)に含まれる機能です。pro fix --help の説明では、このマシンのCVE(共通脆弱性識別子)とUSN(Ubuntuのセキュリティ通知)を調べて解決する、とされています。引数には CVE-yyyy-nnnn、CVE-yyyy-nnnnnnn、USN-nnnn-dd のいずれかの形式で番号を渡します。

公式のドキュメント「How to check if a system is affected by a CVE/USN?」では、何も変更せずに結果を確かめる --dry-run から始める手順が示されています。出力は、CVE・USNの説明、影響を受けるパッケージ、修正の方法、最後に解決したかどうか、の順に並びます。

実際に動かした結果

2026年11月6日に、Ubuntu 24.04.5 LTSのコンテナで確かめました。最初につまずいたのは、pro コマンドが入っていなかったことです。公式のドキュメントには、Ubuntu Pro Clientはすべての Ubuntu にあらかじめ入っている(pre-installed)とありますが、検証に使ったコンテナには入っていませんでした。apt install ubuntu-pro-client で入れ、版は 38ubuntu0~24.04 です。

インストール時点では、PCRE2のライブラリ(libpcre2-8-0)は 10.42-4ubuntu2.1 でした。USN-8974-1 を --dry-run で調べると、次のように出ました。

USN-8974-1: PCRE2 vulnerabilities
Associated CVEs:
 - https://ubuntu.com/security/CVE-2026-89162
 - https://ubuntu.com/security/CVE-2026-103111
 (ほか6件)

Fixing requested USN-8974-1
1 affected source package is installed: pcre2
(1/1) pcre2:
A fix is available in Ubuntu standard updates.
{
  apt update && apt install --only-upgrade -y libpcre2-16-0 libpcre2-32-0 \
  libpcre2-8-0 libpcre2-dev libpcre2-posix3
}

✔ USN-8974-1 is resolved.

--dry-run なのに、最後の行は「is resolved(解決済み)」です。これは「このコマンドを実行すれば解決する」という意味で、まだ何もインストールされていません。公式のドキュメントの例でも、dry-runの出力は同じく「is resolved」で終わっています。報告に使うときは、この行だけを見て「対応済み」と判断しないようにします。

続いて、このUSNに含まれるCVEの1件(CVE-2026-89161)を --dry-run なしで実行すると、ライブラリは 10.42-4ubuntu2.2 になりました。同じコマンドをもう一度実行すると、今度は「The update is already installed.」と表示されます。USN-8974-1 を --dry-run で調べ直しても、同じ表示でした。対応済みかどうかは、この表示で判断できます。

pro fixの出力の読み方の図。dry-runの出力は最後にis resolvedと出るが、実際にはまだ何もインストールしていない。実際に適用したあとに再び実行すると、The update is already installedと出る。CVE-2026-89162は、Ubuntu 24.04ではコードが含まれないため影響なし(not-affected)と出る。見出しの下に、Ubuntu 24.04.5、pro 38、2026年11月6日に編集部で確認、と添える

CVEで聞くか、USNで聞くかで答えが変わる

USN-8974-1 には8件のCVEが載っています。そのうちの1件、CVE-2026-89162 を pro fix で調べると、次のように出ました。

CVE-2026-89162: PCRE2 vulnerabilities
 - https://ubuntu.com/security/CVE-2026-89162

No affected source packages are installed.

✔ CVE-2026-89162 does not affect your system.

PCRE2は入っているのに「影響なし」です。理由は、Ubuntuの CVE のデータ(https://ubuntu.com/security/cves/CVE-2026-89162.json)を見ると分かります。この CVE は、Ubuntu 24.04(noble)と 22.04(jammy)では「not-affected(code not present)」、つまり脆弱なコードが含まれていないと判定されていました。修正版が出ているのは 26.04(resolute)と 26.10(stonking)です。残りの7件は、24.04 でも 10.42-4ubuntu2.2 で修正済み(released)でした。

USNは複数の版のUbuntuにまたがって、関係するCVEをまとめて載せます。そのため「USNに載っているCVE」がすべて自社の版に影響するとは限りません。問い合わせに答えるときは、聞かれたCVEの番号そのもので pro fix --dry-run を実行し(--dry-run を付けないと更新が適用されます)、版ごとの判定を確かめるのが確実です。

複数台で確かめるときの使い方

終了コードで判定する。 pro fix --help によると、終了コードは次の3つです。

  • 0: 修正を適用できた、またはシステムが影響を受けない
  • 1: 修正を適用できない
  • 2: 修正を適用したが、効果を出すには再起動が要る

今回の検証では、--dry-run の場合も、影響なしの場合も、終了コードは0でした。0には「影響なし」と「直した(直せる)」の両方が含まれるので、報告書に分けて書きたい場合は、次のJSON出力を使います。

JSONで計画を取得する。 pro security-status の出力の冒頭には、スクリプトでは pro api コマンドか pro security-status --format json を使うよう案内が出ます。修正の計画は次のように取得できました。

pro api u.pro.security.fix.cve.plan.v1 \
  --data '{"cves": ["CVE-2026-89161", "CVE-2026-89162"]}'

返ってきたJSONでは、適用済みの CVE-2026-89161 は current_status が fixed、影響のない CVE-2026-89162 は not-affected でした。公式の説明では、current_status は計画を実行する前の現在の状態を示します。台数の多い環境では、この値を集めて一覧にすると、問い合わせへの回答の根拠として残せます。

ライブラリの更新後は、使っているサービスの再起動を確かめる(編集部の提案)。 PCRE2のような共有ライブラリは、更新しても、すでに動いているプロセスは古いライブラリを使い続けると考えられます。今回の検証では、どのサービスが再起動を要するかまでは確かめていません。正規表現を使うWebサーバーなどは、メンテナンスの時間に再起動を計画しておくと安全です。nginxの脆弱性を例にした確認方法は、nginxのUSN-8955-1の記事でも扱いました。Ubuntuの版そのものを上げる計画は、24.04から26.04.1への更新の記事を参照してください。

確認した範囲

2026年11月6日に、Ubuntu 24.04.5 LTS のコンテナ(管理者権限)で、ubuntu-pro-client 38ubuntu0~24.04 を入れて pro fix(--dry-run、実際の適用、適用後の再実行)、pro security-status、pro api u.pro.security.fix.cve.plan.v1 を実行しました(実機検証)。このコンテナでは既定の python3 が別に入れた3.13だったため、pro はシステムのPython 3.12で起動しています。Ubuntu Proへの登録(attach)はしていません。USN-8974-1 と8件のCVEの判定は、ubuntu.com のJSON(notices.json、cves/*.json)で確かめ、出力の読み方は Ubuntu Pro Client の公式ドキュメントと照らしました。Ubuntu Proの有効化が必要な修正(ESM)、再起動が必要な修正、ほかの版のUbuntuでの動き、複数台での実行と集計は試していません。

サーバーの脆弱性対応の進め方や、保守の体制づくりは、グリームハブの開発・AI・自動化のご相談で承っています。サーバーの台数や構成によって進め方が変わるため、お問い合わせからご相談ください。

参考資料

この記事を共有XFacebook
鈴木 翔

技術の可能性に魅了され、学生時代からプログラミングとデジタルアートの分野に深い関心を持つ

この記事のテーマを、自社の次の一歩へ

自社での進め方を、具体的に。

つくりたい仕組み、既存システム、運用の条件を整理し、実現に向けた次の一歩を考えます。

  • 実現したい仕組み
  • 既存環境との接続
  • 運用の条件
開発・運用の構想を相談する

構想段階からご相談いただけます。この記事の情報を相談フォームに引き継ぎます。

最新記事をメールで受け取る