Linux カーネルの脆弱性 CVE-2026-98432:一時的な遮断とカーネルパッチの適用

テスト環境RHEL系AlmaLinux 9.8Lightsailカーネル 5.14.0-687.55.1.el9_8 → 5.14.0-687.64.1.el9_82026-11-03 確認
バージョン文字列と SSH ポート番号は例の値で、修正済みカーネル 5.14.0-687.64.1.el9_8のみ AlmaLinux の告知の値です

CVE-2026-98432 は、IPv4 TCP 接続を受け付けるカーネルコードが解放済みのメモリを再び読み取る Linux カーネルの脆弱性で、Linux カーネル CVE チームが Critical と評価しました。認証なしでリモートから攻撃できる欠陥のため、Nginx と Apache 構成の AlmaLinux 9.8 Lightsail サーバーで修正済みのカーネルパッケージに更新して再起動し、実行中のカーネルバージョンでパッチを確認しました。

1️⃣ Linux カーネルの脆弱性 CVE-2026-98432:欠陥の仕組みと影響範囲

TCP 接続要求(SYN)に IPv4 オプションが付いて届くと、カーネルは応答(SYN-ACK)でそのオプションを送り返すために、コピーを待機中の接続と一緒に保管します。接続が確立すると、このコピーは複製されずにそのまま新しい接続のソケットへ渡されます。

その間にクライアントが SYN を再送すると、別の CPU が同じオプションで SYN-ACK を作っている途中かもしれません。このとき新しい接続が閉じてカーネルがオプションのメモリをすぐに解放すると、SYN-ACK を作っていたコードが解放済みのメモリを読む use-after-free が起きます。

このコードは、アプリケーションが接続を見る前、カーネルが接続要求を処理する段階で実行されます。そのため、どのサービスが開いたポートであっても IPv4 TCP で待ち受けていれば、リモートから認証情報なしで攻撃が届き、スコアは CVSS 3.1 で 9.8 です。

欠陥は Linux 4.4 から存在するため、ほとんどの Linux サーバーが該当します。AWS の案内は、Lightsail のブループリントのうち AlmaLinux 9、CentOS Stream 9、Debian、openSUSE Leap、Ubuntu と Amazon Linux 2、Amazon Linux 2023 を挙げました。AlmaLinux の告知は 8、9、10 のすべてを対象としており、Lightsail の WordPress や LAMP のようなアプリケーションブループリントも Debian や Ubuntu の上で動くため同じく対象です。

Linux カーネルを使わない FreeBSD と Windows Server は対象外です。

MPTCP(Multipath TCP)を無効にしたサーバーもパッチの対象です。公開された攻撃は MPTCP リスナーが開いているサーバーを狙いましたが、欠陥そのものは通常の IPv4 TCP コードにあるため、AlmaLinux の告知も MPTCP のないシステムも修正が必要だとしています。

修正済みカーネルはオプションのメモリを RCU の猶予期間(grace period)が過ぎてから解放するため、別の CPU が SYN-ACK を作りながらオプションを読んでいる間はメモリが残ります。

🧩 CVE-2026-98432 use-after-free 흐름
설명 다이어그램
🔍 단계
🌐 클라이언트
📨SYN + IPv4 옵션
🔁SYN 다시 보냄
➜
🐧 커널
🧾IPv4 옵션 사본대기 중인 연결과 함께 보관복제 없이 새 연결의 소켓으로 넘어감새 연결이 닫히며 곧바로 해제RCU 유예 시간이 지난 뒤 해제
⚙️CPU 1새 연결을 맡음새 연결을 닫으며 옵션 해제새 연결을 닫고 해제는 미룸
⚙️CPU 2같은 옵션으로 SYN-ACK 만드는 중해제된 메모리를 읽음읽기를 마친 뒤 해제됨
SYN에 붙은 IPv4 옵션 사본을 대기 중인 연결에 보관합니다.
사본이 새 소켓으로 넘어간 사이, CPU 2가 같은 옵션으로 SYN-ACK를 만듭니다.
CPU 1이 연결을 닫으며 옵션을 해제하고, CPU 2는 해제된 메모리를 읽습니다.
해제를 RCU 유예 시간 뒤로 미뤄, CPU 2가 다 읽은 뒤에 해제합니다.

2️⃣ Linux カーネルのバージョン確認:修正済みカーネルかを見る

パッチが必要かどうかは実行中のカーネルバージョンで決まるため、更新の前にディストリビューションとカーネルバージョンを確認しました。

cat /etc/os-release
NAME="AlmaLinux"
VERSION="9.8 (Olive Jaguar)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.8"
PLATFORM_ID="platform:el9"
PRETTY_NAME="AlmaLinux 9.8 (Olive Jaguar)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9"
ALMALINUX_MANTISBT_PROJECT_VERSION="9.8"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.8"
SUPPORT_END=2032-06-01
uname -r
5.14.0-687.55.1.el9_8.x86_64
nft --version
-bash: nft: command not found

ディストリビューションは AlmaLinux 9.8、実行中のカーネルは 5.14.0-687.55.1.el9_8 でした。一時的な遮断ルールに使う nft コマンドもなく、nftables パッケージがインストールされていない状態でした。

rpm -q kernel
kernel-5.14.0-611.30.1.el9_7.x86_64
kernel-5.14.0-687.49.1.el9_8.x86_64
kernel-5.14.0-687.55.1.el9_8.x86_64

[rpm -q kernel] はインストール済みのカーネル一覧を表示しますが、再起動するまで実際に動いているのは [uname -r] に出た一つです。このバージョンを AlmaLinux の告知の修正済みバージョンと比べます。

ディストリビューション修正済みカーネルのバージョン(このバージョン以上)
AlmaLinux 8kernel-4.18.0-553.182.1.el8_10
AlmaLinux 9kernel-5.14.0-687.64.1.el9_8
AlmaLinux 10kernel-6.12.0-211.72.1.el10_2

5.14.0-687.55.1.el9_8 は AlmaLinux 9 の修正済みバージョン 5.14.0-687.64.1.el9_8 より低く、更新の対象でした。

攻撃が届く経路が開いているかを見るため、待ち受けている IPv4 TCP ポートと MPTCP の状態を確認しました。

ss -lnt4
State  Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0      128          0.0.0.0:22        0.0.0.0:*
LISTEN 0      511          0.0.0.0:443       0.0.0.0:*
LISTEN 0      511          0.0.0.0:80        0.0.0.0:*
sysctl net.mptcp.enabled
net.mptcp.enabled = 0
ss -lnM
State Recv-Q Send-Q Local Address:Port Peer Address:Port

すべてのアドレス(0.0.0.0)で待ち受けている IPv4 TCP ポートは、Web サーバーの 80、443 と SSH の 22 でした。

[net.mptcp.enabled] が 0 で MPTCP ソケットもないため、公開された攻撃が使った MPTCP の経路は閉じていました。欠陥は通常の IPv4 TCP 接続から始まるので、IPv4 ポートを 3 つ待ち受けるサーバーはそのままパッチの対象です。

3️⃣ Linux カーネルの更新:カーネルパッケージ 7 つと再起動

カーネルを変える前に、Lightsail コンソールでインスタンスの手動スナップショットを作成しました。Lightsail には起動するカーネルを選ぶ画面がないため、新しいカーネルでサーバーが起動しなければ、このスナップショットから新しいインスタンスを作って戻すことになります。

🔲 Lightsail スナップショットシミュレーター

📍 Lightsail › 인스턴스 › AlmaLinux-9-1 › 스냅샷
AmazonLightsail문서 검색홈example (000000000000)▼
보안 업데이트를 권장합니다.

Linux 기반 블루프린트를 사용하는 인스턴스에 취약점(CVE-2026-98432)이 발생할 수 있습니다. 인스턴스가 영향을 받는지 확인하고 사용 중인 Linux 배포판에 최신 보안 업데이트를 적용하는 것이 좋습니다.

자세히 알아보기
AlmaLinux-9-1 정보
삭제재부팅중지
2 GB RAM, 2 vCPU, 60 GB SSD 플랜 변경
알마리눅스
AWS 리전
버지니아, 영역 A
(us-east-1a)
인스턴스 유형
범용
네트워킹 유형
듀얼 스택
네트워킹 유형 변경
고정 IP 주소
203.0.113.10
프라이빗 IPv4 주소
192.0.2.10
퍼블릭 IPv6 주소
2001:db8:1234:5678::a1b2
인스턴스 상태
실행 중
시스템 상태 확인
통과됨
인스턴스 상태 확인
통과됨
연결지표스냅샷스토리지네트워킹도메인고급도움말 및 지원
수동 스냅샷

스냅샷을 생성하여 인스턴스, 해당 시스템 디스크 및 연결된 디스크를 백업할 수 있습니다.

스냅샷을 생성 중…“”
2026년 11월 3일, 20:01 (UTC+0:00)“AlmaLinux-9-1-1762200000”
1 스냅샷 중 1 표시
자동 스냅샷
자동 스냅샷이 활성화됨

일일 스냅샷 시간은 오전 5:00 GMT+0입니다.Amazon은 가장 최근의 스냅샷 7개를 저장합니다.

🔲 Linux カーネルの更新と再起動の確認

リポジトリに公開された修正済みカーネルのバージョンは dnf の一覧で確認しました。

dnf --showduplicates list available kernel kernel-core kernel-modules kernel-modules-core kernel-tools kernel-tools-libs kernel-headers
kernel.x86_64                 5.14.0-687.64.1.el9_8   baseos
kernel-core.x86_64            5.14.0-687.64.1.el9_8   baseos
kernel-modules.x86_64         5.14.0-687.64.1.el9_8   baseos
kernel-modules-core.x86_64    5.14.0-687.64.1.el9_8   baseos
kernel-tools.x86_64           5.14.0-687.64.1.el9_8   baseos
kernel-tools-libs.x86_64      5.14.0-687.64.1.el9_8   baseos
kernel-headers.x86_64         5.14.0-687.64.1.el9_8   appstream
dnf download kernel-core-5.14.0-687.64.1.el9_8

kernel-core パッケージのファイルだけを現在のフォルダーにダウンロードし、インストールはしません。

rpm -Kv kernel-core-5.14.0-687.64.1.el9_8.x86_64.rpm
    V4 RSA/SHA256 Signature, key ID b86b3716: OK
rpm -qp --changelog kernel-core-5.14.0-687.64.1.el9_8.x86_64.rpm | grep CVE-2026-98432
- ipv4: free inet_opt and ireq_opt after an RCU grace period (CKI Backport Bot) [RHEL-295635] {CVE-2026-98432}

署名は OK で、変更履歴には CVE-2026-98432 を修正した行がありました。11 月 3 日に確認した dnf のセキュリティアドバイザリ(updateinfo)にはこの CVE がまだなく、[dnf upgrade --security] ではこのカーネルを取得できない状態でした。

そこで、カーネルパッケージ 7 つをバージョンまで指定してインストールしました。

dnf install -y kernel-5.14.0-687.64.1.el9_8 kernel-core-5.14.0-687.64.1.el9_8 kernel-modules-5.14.0-687.64.1.el9_8 kernel-modules-core-5.14.0-687.64.1.el9_8 kernel-tools-5.14.0-687.64.1.el9_8 kernel-tools-libs-5.14.0-687.64.1.el9_8 kernel-headers-5.14.0-687.64.1.el9_8
================================================================================
 Package                Architecture Version                    Repository    Size
================================================================================
Installing:
 kernel                 x86_64    5.14.0-687.64.1.el9_8      baseos       1.1 M
 kernel-core            x86_64    5.14.0-687.64.1.el9_8      baseos        17 M
 kernel-modules         x86_64    5.14.0-687.64.1.el9_8      baseos        40 M
 kernel-modules-core    x86_64    5.14.0-687.64.1.el9_8      baseos        31 M
Upgrading:
 kernel-headers         x86_64    5.14.0-687.64.1.el9_8      appstream    2.6 M
 kernel-tools           x86_64    5.14.0-687.64.1.el9_8      baseos       1.3 M
 kernel-tools-libs      x86_64    5.14.0-687.64.1.el9_8      baseos       1.1 M
Removing:
 kernel                 x86_64    5.14.0-611.30.1.el9_7      @baseos        0
 kernel-core            x86_64    5.14.0-611.30.1.el9_7      @baseos       64 M
 kernel-modules         x86_64    5.14.0-611.30.1.el9_7      @baseos       33 M
 kernel-modules-core    x86_64    5.14.0-611.30.1.el9_7      @baseos       27 M

Transaction Summary
================================================================================
Install  4 Packages
Upgrade  3 Packages
Remove  4 Packages

Total download size: 94 M

Complete!

新しいカーネルパッケージ 4 つがインストールされ、kernel-headers、kernel-tools、kernel-tools-libs の 3 パッケージが更新され、ほかのパッケージは変わりませんでした。インストール済みカーネルを 3 つまで残す [installonly_limit=3] の設定により、最も古い 5.14.0-611.30.1.el9_7 のパッケージ 4 つが削除され、ダウンロードから完了まで 74 秒かかりました。

AlmaLinux の告知が案内する公式の基準コマンドは、リポジトリ情報を取得し直したうえで、更新のあるパッケージをすべて更新します。

sudo dnf clean metadata && sudo dnf upgrade

カーネル以外のパッケージも一緒に更新されるため、ディストリビューションのバージョン全体を上げる手順は Alma Linux のアップデート:LightSail における 9.4 → 9.8で確認できます。

新しいカーネルは再起動しないと適用されません。

systemctl reboot

サーバーが再び起動したあと、実行中のカーネル、インストール済みのカーネル、既定のカーネルを順に確認しました。

uname -r
5.14.0-687.64.1.el9_8.x86_64
rpm -q kernel
kernel-5.14.0-687.49.1.el9_8.x86_64
kernel-5.14.0-687.55.1.el9_8.x86_64
kernel-5.14.0-687.64.1.el9_8.x86_64
grubby --default-kernel
/boot/vmlinuz-5.14.0-687.64.1.el9_8.x86_64

サーバーは再起動コマンドから 1 分もたたずに再び起動し、実行中のカーネルと次回の起動で使う既定のカーネルがどちらも 5.14.0-687.64.1.el9_8 に変わりました。以前のカーネル 5.14.0-687.55.1.el9_8 は残っているため、新しいカーネルに問題が起きたら既定のカーネルを元に戻せます。

項目パッチ前パッチ後
実行中のカーネル(uname -r)5.14.0-687.55.1.el9_85.14.0-687.64.1.el9_8
既定のカーネル(grubby)5.14.0-687.55.1.el9_85.14.0-687.64.1.el9_8
インストール済みのカーネル(rpm -q kernel)5.14.0-611.30.1.el9_7, 5.14.0-687.49.1.el9_8, 5.14.0-687.55.1.el9_85.14.0-687.49.1.el9_8, 5.14.0-687.55.1.el9_8, 5.14.0-687.64.1.el9_8

4️⃣ 再起動前の一時的な遮断:nft ルールとその限界

すぐに再起動できないときは、修正済みカーネルを入れるまでの間、一時的なルールで欠陥のきっかけになるパケットを遮断できます。この章のコマンドは私たちが実行していない公式の基準(AlmaLinux と AWS の告知)です。

Nginx と Apache 構成の AlmaLinux 9.8 Lightsail サーバーは再起動が数分で終わるため、一時的な遮断はせずにすぐカーネルを更新しました。

欠陥は IPv4 オプションが付いた TCP 接続要求からしか始まりません。通常のトラフィックは IPv4 オプションをほとんど使わないため、オプションが付いた IPv4 TCP パケットだけを遮断しても普段の接続はそのまま保たれます。

sudo dnf install -y nftables

nft コマンドは firewalld と一緒にインストールされる nftables パッケージに含まれています。コマンドがないサーバーなら、先にインストールします。

sudo nft -f - <<'EOF'
add table ip cve_2026_98432
delete table ip cve_2026_98432
table ip cve_2026_98432 {
    chain prerouting {
        type filter hook prerouting priority -300; policy accept;
        meta l4proto tcp ip hdrlength > 5 counter drop
    }
}
EOF

IPv4 ヘッダー長が 5 を超える TCP パケット、つまり IPv4 オプションが付いたパケットを prerouting の段階で遮断するテーブルを作ります。AlmaLinux が 8、9、10 で試したルールで、firewalld と一緒に使え、何度実行しても安全です。

sudo nft list table ip cve_2026_98432

ルールが入ったかを確認します。出力の counter の値がこれまでに遮断したパケットの数です。

sudo nft delete table ip cve_2026_98432

修正済みカーネルで再起動したあとは、このコマンドでテーブルを削除します。

このルールは再起動すると消えるため、修正済みカーネルを入れる前に再起動した場合は、テーブルを作るコマンドをもう一度実行します。

IPv4 オプションに頼るアプリケーションがあるサーバーには、このルールは合いません。IPv4 オプションで運ばれる CIPSO セキュリティラベル(NetLabel)を使うネットワークがその例で、既定の設定では使いません。

ルールはホストと、ホストを経由してトラフィックを受けるコンテナー(Podman と Docker の既定の方式)を守ります。同じホスト上のコンテナー同士でやり取りするトラフィックは、このルールをすり抜けることがあります。

Debian、Ubuntu、openSUSE では AWS の案内にある iptables ルール 1 行を使います。AlmaLinux 9 と CentOS Stream 9 のカーネルにはこのルールが使う u32 マッチがないため、上の nft ルールで進めます。

sudo iptables -I INPUT 1 -p tcp -m u32 --u32 '0>>24&0x0f=6:15' -j DROP

u32 の式は IPv4 ヘッダー長の欄を読み、値が 5 より大きければ IPv4 オプションが付いたパケットです。修正済みカーネルを入れたあとは、下のコマンドでこのルールを削除します。

sudo iptables -D INPUT -p tcp -m u32 --u32 '0>>24&0x0f=6:15' -j DROP

Lightsail のファイアウォールで使っていないポートを閉じ、残りのポートを信頼できる IP アドレスだけに絞ることも AWS の案内が併せて勧めている方法です。

🔢 FAQ & おすすめコンテンツ

AlmaLinux と AWS の告知はどちらも、IPv6 接続はこの欠陥の主な問題の影響を受けず、一時的なルールも不要だとしています。ただし、IPv6 だけを使っていると思っていたサーバーでも、SSH や Web サーバーが IPv4 TCP ポートを一つでも待ち受けていればそのポートから攻撃が届くため、[ss -lnt4] で確認し、カーネルパッチはそのまま進めます。

AlmaLinux の告知は、TCP リクエストソケットの移行(net.ipv4.tcp_migrate_req の設定や、リクエストを移す BPF プログラム)を有効にした場合にも似た問題があるとしています。この設定は既定で無効です。有効にしている場合は、修正済みカーネルに更新したあと AlmaLinux の告知の更新内容を確認します。

AWS の案内は、Debian 11 と openSUSE Leap 15 はサポートが終了しており、カーネル更新を受け取れない場合があるとしています。AWS は、こうしたサーバーに一時的なファイアウォールルールを先に適用し、サポート中のバージョンのインスタンスへ移す計画を立てるよう勧めています。

ℹ️ 提携について
当サイトのコンテンツにはアフィリエイトリンクが含まれています。訪問者がこのリンクを通じて商品やサービスを購入すると、当サイトは販売元から手数料を受け取ります。この過程において、購入者が支払う金額(イベント割引適用で金額が下がります↓)は上昇しません。掲載されている価格・割引・在庫情報は作成時点のものであり、実際とは異なる場合がありますので、ご購入前に販売元にて最終確認をお願いいたします。商品の選定および評価は独自の基準に基づいて行われており、手数料の支払いの有無は紹介順や評価内容に影響を与えません。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

人間であることを証明してください: 2   +   7   =