日: 2026年11月4日

CVE-2026-98432対応・解決編『サーバ管理者は眠りたい』(Ubuntuの先行パッチ適用によるカーネルアップデート)

はじめに

2026年10月31日、Linuxカーネルの脆弱性「CVE-2026-98432」に対して、nftablesによる暫定緩和策を実施しました。

このときの方針は、修正版カーネルが公開されるまでの間、攻撃経路を少しでも狭めるというものです。ここで問題となったのがUbuntu側の修正版の提供状況でした。

脆弱性の存在は明らかになっている。修正パッチも存在している。しかし、Ubuntuの通常の更新経路には、まだ修正版が配信されていない。そんな中、2026年11月2日にCanonicalから発表がありました。

Fixes available in -proposed pocket for CVE-2026-98432

修正版カーネルが -proposed ポケットで利用可能になった、というものです。

-proposed は、Ubuntuの更新パッケージが正式公開される前に検証される領域です。つまり、修正版は手に入る。しかし、通常の更新として配信するための検証はまだ終わっていない。

ここで筆者は、正式公開を待つのではなく、修正版カーネルを先行適用することにしました。今回は、その適用手順と、再起動後の確認、通常の更新経路への復帰までを記録します。

1. 対応環境と修正版の確認

今回の対象はUbuntu 24.04 LTSのVPSです。

まず、現在稼働しているカーネルを確認します。

uname -r

結果:

6.8.0-147-generic

インストール済みのカーネルパッケージも確認します。

dpkg -l | grep linux-image

続いて、APTで利用可能なバージョンを確認します。

apt-cache policy linux-generic
インストールされているバージョン: 6.8.0-147.147
候補: 6.8.0-147.147

この時点では、通常の noble-updates および noble-security に修正版は存在していません。

一方、Canonicalが公開したUbuntu 24.04 LTS向けの修正版は以下のとおりです。

6.8.0-149.149

そこで、noble-proposed を一時的に利用することにします。

2. noble-proposedの登録

まず、APTに noble-proposed を追加します。

echo 'deb http://archive.ubuntu.com/ubuntu noble-proposed main' | sudo tee /etc/apt/sources.list.d/noble-proposed.list

次に、-proposed のパッケージが通常の更新で無差別に選択されないよう、優先度を明示します。

sudo tee /etc/apt/preferences.d/99-noble-proposed <<'EOF'
Package: *
Pin: release a=noble-proposed
Pin-Priority: 100
EOF

通常の更新リポジトリの優先度500より低くすることで、-proposed に存在するパッケージを通常のアップグレード対象として優先させないようにします。なお、Ubuntuの -proposed は標準でも優先度100として扱われます。今回は設定を明示しています。

パッケージリストを更新します。

sudo apt update

続いて、修正版が認識されているか確認します。

apt-cache policy linux-generic

結果:

linux-generic:
  インストールされているバージョン: 6.8.0-147.147
  候補:               6.8.0-147.147
  バージョンテーブル:
     6.8.0-149.149 100
        100 http://archive.ubuntu.com/ubuntu noble-proposed/main amd64 Packages
 *** 6.8.0-147.147 500
        500 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages
        100 /var/lib/dpkg/status

ここで、修正版の 6.8.0-149.149 が認識されました。ただし、候補は依然として 6.8.0-147.147 のままです。

これは意図した挙動です。

3. インストール前のシミュレーション

いきなりカーネルを更新するのは避けたいところです。特に今回は、正式公開前のパッケージを本番VPSへ導入します。

そこで、APTのシミュレーション機能を利用します。

sudo apt-get -s install -t noble-proposed --only-upgrade linux-generic

-s はシミュレーション、-t noble-proposed は対象のリポジトリを指定するオプションです。

今回の結果は以下のとおりでした。

アップグレード: 8 個
新規インストール: 7 個
削除: 0 個
保留: 21 個

更新対象には以下が含まれていました。

  • linux-generic
  • linux-image-generic
  • linux-virtual
  • linux-image-virtual
  • linux-headers-generic
  • linux-headers-virtual
  • linux-libc-dev
  • linux-tools-common

また、カーネルイメージ、モジュール、ヘッダー、ツール類が 6.8.0-149 として新規導入されます。特に確認したかったのは、パッケージ削除が0件であることです。

4. 修正版カーネルの適用

シミュレーションに問題がなかったため、実際の更新を実施します。

sudo apt-get install -t noble-proposed --only-upgrade linux-generic

今回の環境では、linux-generic に加えて linux-virtual 系のメタパッケージも依存関係として更新対象になりました。

インストール後、カーネルを切り替えるために再起動します。

sudo reboot

再起動後、稼働カーネルを確認します。

uname -r

結果:

6.8.0-149-generic

修正版カーネルでの起動に成功しました。

これでCVE-2026-98432に対するカーネル側の修正は適用できました。

……と、ここで終われば話は簡単だったのですが。

5. 再起動後のサービス確認

カーネルが更新できたからといって、システム全体が正常に動いているとは限りません。

そこで、systemdの状態を確認します。

systemctl --failed

結果:

UNIT LOAD ACTIVE SUB DESCRIPTION

0 loaded units listed.

失敗しているユニットがあった場合は、カーネル更新との関連を含めて原因を確認し、必要に応じて関係者と調整した上で対処します。

6. noble-proposedの登録解除

修正版カーネルの適用と再起動後の確認が完了したため、最後にAPTの設定を元に戻します。noble-proposed は正式公開前のパッケージを提供する領域です。

今回必要だったのは修正版カーネルの先行適用であり、継続して有効にしておく必要はありません。

追加した設定ファイルを削除します。

sudo rm /etc/apt/sources.list.d/noble-proposed.list
sudo rm /etc/apt/preferences.d/99-noble-proposed

パッケージリストを更新します。

sudo apt update

続いて、カーネルの状態を確認します。

apt-cache policy linux-generic

結果:

linux-generic:
  インストールされているバージョン: 6.8.0-149.149
  候補:               6.8.0-149.149
  バージョンテーブル:
 *** 6.8.0-149.149 100
        100 /var/lib/dpkg/status
     6.8.0-147.147 500
        500 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages
     6.8.0-31.31 500
        500 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages

修正版の 6.8.0-149.149 はインストール済みとして維持されています。通常の更新リポジトリに存在するバージョンは 6.8.0-147.147 ですが、APTが自動的にダウングレードすることはありません。

最後に、noble-proposed の設定が残っていないことを確認します。

grep -R 'noble-proposed' /etc/apt/sources.list /etc/apt/sources.list.d/ /etc/apt/preferences.d/ 2>/dev/null

結果は出力なし。これでAPTの設定も通常の状態へ戻りました。

7. 暫定緩和策について

10月31日に実施したnftablesによる暫定緩和策については、今回は撤去せず、そのまま維持することにしました。今回のカーネル更新によってCVE-2026-98432の修正は適用されていますが、既存のフィルタリングルールを急いで取り除く必要もありません。

筆者の環境ではGoを使用しておらず、現在のルールによる運用上の問題も確認されていません。そのため、今回の対応ではnftablesのルールと永続化用のsystemdサービスを変更せず、現状維持とします。

8. 対応結果

今回の対応結果をまとめます。

項目結果
CVE-2026-98432修正版適用完了
稼働カーネル6.8.0-149-generic
noble-proposed登録解除済み
systemd失敗ユニット0件
nftables暫定緩和策維持

これで、今回のCVE対応は一段落となりました。

おわりに

今回、改めて実感したのは、脆弱性対応における判断の難しさです。Canonicalが修正版を -proposed に公開したのは、正式な更新経路へ投入する前に、十分な検証を行うためです。

その判断には合理性がありますが、実際にサーバを運用する立場からすれば、脆弱性が明らかになっているにもかかわらず、正式な更新を待ち続けることにもリスクがあります。

  • 正式公開まで待つのか。
  • 検証中の修正版を先行適用するのか。
  • 暫定緩和策でどこまで対応できるのか。

どの選択にも、それぞれのリスクと運用コストがあります。この場合、筆者が選べる道は2つです。

  • 正式公開まで待ち、日々、脆弱性チェックに怯えて眠れない時間を継続するのか?
  • 少々のリスクを承知でカーネルアップデートを行い、(少なくともその問題は)解決させてぐっすり眠る日を確保するのか?

筆者の性分は後者だったというお話です。

ピボット旅行2026-29『交叉点』

はじめに

いよいよ迎えた、ピボット旅行2026の最終日。高松を拠点に四国・中国地方を巡った旅も、この日に東京に戻る日です。

そんな最終日の朝食については、旅行前から決めていたことがあります。

朝5時から営業しているうどん屋で、朝うどんを食べる。

向かう先は、高松駅からほど近い『味庄』。平日のみの営業ながら、朝5時から店を開けているという、なかなかに尖った営業時間のお店です。

筆者にとって朝5時という時間は、それほど珍しいものではありません。むしろ、この時間だからこそ味わえるものがあります。

朝という名の交叉点

筆者は、どちらかといえば朝型の人間です。

仕事の都合によっては始発電車で職場へ向かうこともありますし、休日であっても早朝から行動することに抵抗はありません。そして、何よりも好きなのが、この早朝という時間帯そのものです。

理由は単純。

朝という時間は、様々な人々の生活が交叉する時間だからです。

  • これから仕事へ向かう人。
  • 夜勤を終えてようやく一息つく人。
  • 深夜の営業を終え、仮眠を取ってから次の仕事へ向かうタクシードライバー。
  • 一晩働いたキャストを労う飲食店のママさん。

同じ朝5時であっても、その意味するところは人によって全く異なります。

ある人にとっては一日の始まり。またある人にとっては、一日の終わり。

そして、そのどちらでもない、仕事の合間に訪れる束の間の休息。時計の針が指す時刻は同じでも、そこに流れている時間は決して同じではありません。

そんな人々が、同じ場所に集まり、同じものを食べる。筆者は、そういう光景が大好きなのです。

観光名所を訪れるだけでは、なかなか見えてこない土地の生活。そこに少しだけお邪魔できるのが、早朝営業のお店というわけです。

朝5時10分の光景

というわけで、朝起きてすぐに宿を出発。目的地は、宿泊しているJRクレメントイン高松からもほど近い味庄です。

時刻は朝5時10分。いくら朝5時から営業しているとはいえ、まだ開店して10分ほど。

さすがに、この時間からそんなに人がいるわけが……

それなりにいる。

思わず二度見する程度には、お客さんが入っていました。もっとも、ここまでは筆者の想定内です。

早朝営業をしているということは、それだけの需要があるということ。そして、この時間帯に訪れる人々の顔ぶれこそ、今回の朝食で楽しみにしていたものです。

ただ、一つだけ予想と違っていたことがありました。

妙に身なりがパリッとしている方が目立つのです。

いかにも仕事帰りという方もいる一方で、きちんとした服装で、これから仕事へ向かうのであろう方々の姿。朝5時過ぎという時間を考えると、少々不思議な光景です。

その理由にはすぐに思い当たりました。

時刻表が教えてくれたもの

高松駅に到着した際、筆者は駅の時刻表を写真に収めていました。旅先での移動計画に使うためでもありますが、こうした「なんてことない」記録が後になって役立つことがあります。

そして、その写真に写っていたもの。マリンライナー、朝4時台から走っているのです。高松から岡山へ向かい、そこから新幹線に乗り継ぐ。

そう考えれば、この時間に行動を始めることで、遠方であっても朝9時の始業に間に合う可能性が見えてきます。

以前の記事でも触れた、高松という土地の位置関係。四国の玄関口であり、瀬戸大橋を渡れば本州へとつながる交通の要衝。

筆者にとっては旅の拠点として選んだ高松ですが、そこに暮らす人々にとっては、日々の通勤や仕事を支える場所でもあるわけです。

朝5時のうどん屋に、きちんとした身なりの人がいる。それ自体は何の変哲もない光景ですが、時刻表という別の情報と結びついた瞬間、その背景が見えてきました。

観光客にとっての早朝は、地元の人にとっての通常営業。そんな「なんてことない(大事二言)」日常にお邪魔できるのは感慨深いもの我があります。

脳内シャア、ようやく起床

人間観察に夢中になっている場合ではありません。本来の目的は、うどんを食べることです。

今回注文したのは、釜揚げうどん。香川県といえば讃岐うどん。そして讃岐うどんといえば、強いコシを連想する方も多いでしょう。

もっとも、筆者は今回の旅行で、そうした先入観を何度となく覆されてきました。味庄について事前に目にした口コミとやらには、麺のコシが弱いという評価もありました。

ならば、ようやく起床してきた筆者の脳内シャアの出番です。

「さて、楽しませてもらおうか」

ロープ際の攻防

運ばれてきた釜揚げうどん。まずは一口。確かに、柔らかい。

一般的にイメージされる、噛み応えの強い讃岐うどんとは少し異なる歯ごたえです。

しかし、柔らかいと簡単に噛み切れは両立しません。

歯を入れると、確かに麺は素直に沈み込みます。ところが、噛み切ろうとする寸前で、ふっと粘りを見せるのです。抵抗がないようで、最後の最後に抵抗する。

この絶妙な粘りは何かに似ていると思ったら、筆者がYouTubeなどで見てきた、往年のプロレスラー、リック・フレアーの試合でした。

ロープ際まで追い詰められ、今にも決着がつきそうな場面。そこで簡単には終わらない。粘り、耐え、最後の最後まで勝負を続ける。あのロープ際の攻防です。

まさか朝5時の釜揚げうどんを食べながら、「狂乱の貴公子」の試合を思い出すことになるとは。

もっとも、うどんに足四の字固めを仕掛けられても困りますし、朝からWoooo!の叫びを聞きたいわけでもありません。

さておき。この柔らかさと粘りの両立こそが、筆者にとっては実に好ましいものでした。

コシの善し悪しの単純な物差しでは測れない食感が、そこにあります。何せ起き抜けの朝の身体に、この温かい釜揚げうどんが実によく馴染むのです。

チョイスした卵天にマイタケの天ぷらも、絶妙なコシを担保してくれました。

またしても、大満足。今回の旅行、うどんに関しては最後まで期待を裏切られませんでした。

もう一つの交叉点

今回、味庄で感じた交叉点には、もう一つの意味がありました。それは、社会的な立場の異なる人々が、同じ場所に集まるということです。

高松という土地には、様々な人が暮らしています。島や船団を所有するような富裕層もいれば、年金を頼りに慎ましく暮らす方々もいます。

若い人も、年配の人も。そして、その人々が同じうどん屋に集まってきます。

ここでは、どれほどの資産を持っているかも、どのような肩書を持っているかも関係ありません。あらゆる階級の人々が、同じうどんを食べるために集まってくるのです。

セルフサービスのうどん店であれば、なおさらです。同じデポの前に並び、同じトングを手に取り、思い思いの一杯を仕上げていく。

社会的な立場も、収入も、生活の時間帯も異なる人々が、同じ道具を共有する。それぞれが何を考え、どのような人生を送っているのかは筆者にとってはNone of my businessです。

それでも、同じ店で同じものを食べるという、ごく当たり前の行為によって、それぞれの生活がほんの一瞬だけ交わります。そこには、特別な演出もなければ、誰かが用意した物語もありません。

ただ、日常があるだけです。この日、筆者はこの宿を引き払います。言い換えるまでもなく、旅はもうすぐ終わります。

しかし、この店に集まっていた人々にとっては、今日もまた、いつも通りの一日が続いていきます。ある人は仕事へ向かい、ある人は家路につく。

そして筆者もまた、旅の最終日へと歩き出します。日常に戻るために。

Powered by WordPress & Theme by Anders Norén