Luka w jądrze Linux CVE-2026-98432: tymczasowa blokada i instalacja poprawki jądra

Środowisko testoweRodzina RHELAlmaLinux 9.8LightsailJądro 5.14.0-687.55.1.el9_8 → 5.14.0-687.64.1.el9_8Sprawdzono 2026-11-03
Ciągi wersji i numer portu SSH to przykładowe wartości; tylko poprawione jądro 5.14.0-687.64.1.el9_8 to wartość z komunikatu AlmaLinux

CVE-2026-98432 to podatność jądra Linux, w której kod jądra przyjmujący połączenia TCP IPv4 ponownie odczytuje już zwolnioną pamięć; zespół CVE jądra Linux ocenił ją jako Critical. Ponieważ lukę można zaatakować zdalnie bez uwierzytelniania, zaktualizowaliśmy serwer Lightsail z AlmaLinux 9.8, Nginx i Apache do pakietów poprawionego jądra, uruchomiliśmy go ponownie i sprawdziliśmy poprawkę po wersji działającego jądra.

1️⃣ Luka w jądrze Linux CVE-2026-98432: jak działa i kogo dotyczy

Gdy przychodzi żądanie połączenia TCP (SYN) z opcjami IPv4, jądro przechowuje kopię tych opcji razem z oczekującym połączeniem, aby odesłać je w odpowiedzi (SYN-ACK). Po nawiązaniu połączenia ta kopia trafia bez duplikowania prosto do gniazda nowego połączenia.

Jeśli w tym czasie klient wyśle SYN ponownie, inny procesor może właśnie budować SYN-ACK z tymi samymi opcjami. Jeśli wtedy nowe połączenie się zamknie, a jądro od razu zwolni pamięć opcji, kod budujący SYN-ACK odczyta już zwolnioną pamięć: to use-after-free.

Ten kod działa na etapie, gdy jądro obsługuje żądanie połączenia, zanim aplikacja w ogóle zobaczy połączenie. Dlatego niezależnie od tego, która usługa otworzyła port, jeśli nasłuchuje on przez TCP IPv4, atak może do niego dotrzeć zdalnie bez danych logowania, a wynik według CVSS 3.1 to 9.8.

Luka istnieje od Linux 4.4, więc dotyczy większości serwerów z Linuksem. Spośród blueprintów Lightsail poradnik AWS wymienia AlmaLinux 9, CentOS Stream 9, Debiana, openSUSE Leap, Ubuntu oraz Amazon Linux 2 i Amazon Linux 2023. Komunikat AlmaLinux wymienia wersje 8, 9 i 10, a blueprinty aplikacji Lightsail, takie jak WordPress i LAMP, też działają na Debianie lub Ubuntu, więc również ich to dotyczy.

FreeBSD i Windows Server, które nie używają jądra Linux, nie są objęte luką.

Serwery z wyłączonym MPTCP (Multipath TCP) też potrzebują poprawki. Opublikowany atak celował w serwery z otwartym nasłuchem MPTCP, ale sama luka jest w zwykłym kodzie TCP IPv4, dlatego komunikat AlmaLinux mówi, że systemy bez MPTCP także trzeba poprawić.

Poprawione jądro zwalnia pamięć opcji dopiero po upływie okresu karencji RCU (grace period), więc pamięć zostaje na miejscu, dopóki inny procesor odczytuje opcje, budując 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️⃣ Sprawdzanie wersji jądra Linux: czy jądro jest poprawione?

To, czy poprawka jest potrzebna, zależy od wersji działającego jądra, więc przed aktualizacją najpierw sprawdziliśmy dystrybucję i wersję jądra.

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

Dystrybucja to AlmaLinux 9.8, a działające jądro to 5.14.0-687.55.1.el9_8. Nie było też polecenia nft, którego używa tymczasowa reguła blokująca, więc pakiet nftables nie był zainstalowany.

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] wyświetla listę zainstalowanych jąder, ale do ponownego uruchomienia naprawdę działa tylko to jedno, które pokazuje [uname -r]. Porównaj tę wersję z poprawioną wersją z komunikatu AlmaLinux.

DystrybucjaWersja poprawionego jądra (ta wersja lub nowsza)
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 była niższa niż 5.14.0-687.64.1.el9_8, poprawiona wersja dla AlmaLinux 9, więc wymagała aktualizacji.

Aby zobaczyć, czy droga dla ataku jest otwarta, sprawdziliśmy nasłuchujące porty TCP IPv4 i stan 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

Porty TCP IPv4 nasłuchujące na wszystkich adresach (0.0.0.0) to 80 i 443 serwera WWW oraz 22 dla SSH.

[net.mptcp.enabled] miało wartość 0 i nie było gniazd MPTCP, więc ścieżka MPTCP użyta w opublikowanym ataku była zamknięta. Luka zaczyna się jednak od zwykłych połączeń TCP IPv4, więc serwer nasłuchujący na trzech portach IPv4 nadal potrzebuje poprawki.

3️⃣ Aktualizacja jądra Linux: siedem pakietów jądra i ponowne uruchomienie

Przed zmianą jądra utworzyliśmy w konsoli Lightsail ręczną migawkę instancji. Lightsail nie ma ekranu do wyboru jądra startowego, więc jeśli serwer nie wstanie z nowym jądrem, przywracasz go, tworząc z tej migawki nową instancję.

🔲 Symulator migawek 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개를 저장합니다.

🔲 Sprawdzanie aktualizacji jądra Linux i ponownego uruchomienia

Poprawioną wersję jądra dostępną w repozytorium sprawdziliśmy listą 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

Pobiera do bieżącego folderu tylko plik pakietu kernel-core, bez instalowania.

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}

Podpis był OK, a w dzienniku zmian była linia poprawiająca CVE-2026-98432. W biuletynach bezpieczeństwa dnf (updateinfo), które sprawdziliśmy 3 listopada, tego CVE jeszcze nie było, więc przez [dnf upgrade --security] nie dało się pobrać tego jądra.

Dlatego zainstalowaliśmy siedem pakietów jądra, podając też wersję.

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!

Zainstalowano cztery nowe pakiety jądra, zaktualizowano trzy pakiety kernel-headers, kernel-tools i kernel-tools-libs, a żaden inny pakiet się nie zmienił. Ponieważ ustawienie [installonly_limit=3] zachowuje do trzech zainstalowanych jąder, usunięto cztery pakiety najstarszego, 5.14.0-611.30.1.el9_7; od pobierania do zakończenia minęło 74 sekundy.

Oficjalne polecenie podane w komunikacie AlmaLinux pobiera na nowo informacje o repozytoriach, a potem aktualizuje wszystkie pakiety, dla których jest aktualizacja.

sudo dnf clean metadata && sudo dnf upgrade

Ponieważ oprócz jądra aktualizowane są też inne pakiety, kroki aktualizacji całej wersji dystrybucji znajdziesz w artykule Aktualizacja Alma Linux: 9.4 → 9.8 w LightSail.

Nowe jądro zaczyna działać dopiero po ponownym uruchomieniu.

systemctl reboot

Po ponownym uruchomieniu serwera sprawdziliśmy po kolei działające jądro, zainstalowane jądra i jądro domyślne.

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

Serwer wstał w niecałą minutę po poleceniu ponownego uruchomienia, a działające jądro i jądro domyślne dla następnego startu zmieniły się na 5.14.0-687.64.1.el9_8. Poprzednie jądro 5.14.0-687.55.1.el9_8 nadal jest zainstalowane, więc jeśli nowe jądro sprawi problemy, możesz przywrócić jądro domyślne.

PozycjaPrzed poprawkąPo poprawce
Działające jądro (uname -r)5.14.0-687.55.1.el9_85.14.0-687.64.1.el9_8
Jądro domyślne (grubby)5.14.0-687.55.1.el9_85.14.0-687.64.1.el9_8
Zainstalowane jądra (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️⃣ Tymczasowa blokada przed ponownym uruchomieniem: reguły nft i ich ograniczenia

Jeśli nie możesz od razu uruchomić serwera ponownie, do czasu instalacji poprawionego jądra możesz zablokować tymczasową regułą pakiety, które wyzwalają lukę. Poleceń z tej części nie uruchamialiśmy sami; opierają się na oficjalnych zaleceniach (komunikatach AlmaLinux i AWS).

Na serwerze Lightsail z AlmaLinux 9.8, Nginx i Apache ponowne uruchomienie trwa tylko kilka minut, więc zaktualizowaliśmy jądro od razu, bez tymczasowej blokady.

Lukę wyzwalają tylko żądania połączenia TCP z opcjami IPv4. Zwykły ruch prawie nie używa opcji IPv4, więc blokując tylko pakiety TCP IPv4 z opcjami, zachowujesz normalne połączenia.

sudo dnf install -y nftables

Polecenie nft jest w pakiecie nftables, instalowanym razem z firewalld. Jeśli na serwerze nie ma tego polecenia, najpierw zainstaluj pakiet.

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

Tworzy tabelę, która na etapie prerouting odrzuca pakiety TCP z długością nagłówka IPv4 większą niż 5, czyli pakiety z opcjami IPv4. To reguła przetestowana przez AlmaLinux na wersjach 8, 9 i 10; można jej używać razem z firewalld i bezpiecznie uruchamiać wiele razy.

sudo nft list table ip cve_2026_98432

Sprawdza, czy reguła działa; wartość counter w wyniku to liczba dotąd odrzuconych pakietów.

sudo nft delete table ip cve_2026_98432

Po ponownym uruchomieniu z poprawionym jądrem usuń tabelę tym poleceniem.

Ta reguła znika po ponownym uruchomieniu, więc jeśli uruchomiłeś serwer ponownie przed instalacją poprawionego jądra, uruchom jeszcze raz polecenie tworzące tabelę.

Ta reguła nie pasuje do serwerów z aplikacjami, które polegają na opcjach IPv4. Przykładem są sieci używające etykiet bezpieczeństwa CIPSO (NetLabel), przenoszonych w opcjach IPv4; w domyślnej konfiguracji nie są używane.

Reguła chroni hosta i kontenery, które odbierają ruch przez hosta (domyślny tryb Podmana i Dockera). Ruch wymieniany między kontenerami na tym samym hoście może ominąć tę regułę.

Na Debianie, Ubuntu i openSUSE użyj jednowierszowej reguły iptables z poradnika AWS. Jądra AlmaLinux 9 i CentOS Stream 9 nie mają dopasowania u32, którego używa ta reguła, więc tam użyj reguły nft powyżej.

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

Wyrażenie u32 odczytuje pole długości nagłówka IPv4; wartość większa niż 5 oznacza pakiet z opcjami IPv4. Po zainstalowaniu poprawionego jądra usuń tę regułę poleceniem poniżej.

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

Zamknięcie nieużywanych portów w zaporze Lightsail i ograniczenie pozostałych do zaufanych adresów IP to kolejna metoda zalecana w poradniku AWS.

🔢 FAQ & polecane treści

Komunikaty AlmaLinux i AWS mówią, że główny problem tej luki nie dotyczy połączeń IPv6 i nie potrzebują one tymczasowej reguły. Jednak nawet serwer, który pozornie używa tylko IPv6, jest osiągalny dla ataku przez port TCP IPv4, jeśli SSH albo serwer WWW nasłuchuje choćby na jednym takim porcie, więc sprawdź to poleceniem [ss -lnt4] i i tak zainstaluj poprawkę jądra.

Komunikat AlmaLinux mówi, że podobny problem występuje, gdy włączona jest migracja gniazd żądań TCP (ustawienie net.ipv4.tcp_migrate_req albo program BPF, który przenosi żądania). To ustawienie jest domyślnie wyłączone; jeśli je włączyłeś, zaktualizuj jądro do poprawionej wersji, a potem sprawdź aktualizacje komunikatu AlmaLinux.

Poradnik AWS mówi, że wsparcie dla Debiana 11 i openSUSE Leap 15 się skończyło i mogą one nie dostawać aktualizacji jądra. AWS zaleca, by na takich serwerach najpierw zastosować tymczasową regułę zapory, a potem zaplanować przeniesienie na instancję z obsługiwaną wersją.

ℹ️ Informacja o linkach partnerskich
Treści tej witryny zawierają linki partnerskie. Jeśli odwiedzający kupi produkt lub usługę przez taki link, witryna otrzymuje od sprzedawcy prowizję. Kwota płacona przy tym przez kupującego (podczas promocji spada↓) nie wzrasta. Podane ceny, rabaty i dostępność odnoszą się do chwili pisania i mogą różnić się od stanu faktycznego, dlatego przed zakupem sprawdź je u sprzedawcy. Produkty wybieramy i oceniamy według własnych kryteriów, a prowizja nie wpływa ani na kolejność prezentacji, ani na treść ocen.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Prove your humanity: 4   +   6   =