W październiku 2026 roku w jądrze Linuksa odkryto krytyczną lukę w zabezpieczeniach CVE-2026-98432 , ocenioną na 9.8 na 10 w skali CVSS. Wpływa ona na sposób obsługi przychodzących połączeń TCP IPv4 i, w pewnych warunkach, umożliwia atakującemu uzyskanie zdalnego dostępu do serwera z uprawnieniami roota – bez hasła i bez konieczności podejmowania działań przez administratora.
Poniżej znajdziesz informacje o tym, kogo dotyczy problem, jak sprawdzić serwer i jak go chronić. Wszystkie polecenia należy uruchamiać jako root lub z uprawnieniami administratora. sudo.
Krótki opis luki w zabezpieczeniach
- Co to jest: Błąd typu „użyj po zwolnieniu” w kodzie konfigurującym połączenia TCP IPv4, spowodowany wyścigiem warunków. Atakujący wysyła specjalnie spreparowane pakiety do dowolnego otwartego portu TCP.
- Dotknięte jądra: każda wersja od Linuksa 4.4, co oznacza praktycznie każdą obecną dystrybucję.
- IPv6 nie jest dotknięty głównym błędem.
- Jak realne jest zagrożenie: Badacze z Anthropic zaprezentowali działający łańcuch exploitów, który w ciągu około 53 minut uzyskał dostęp do roota na serwerze z włączonym protokołem Multipath TCP (MPTCP). Kod exploita nie został opublikowany.
- Ataki na wolności: Do 1 listopada 2026 r. nie zgłoszono żadnego przypadku nadużycia. To powód, aby zaktualizować informacje spokojnie, a nie odkładać to na później.
Usługi Go niosą ze sobą osobne ryzyko. Od wersji Go 1.24 programy serwerowe w systemie Linux domyślnie nasłuchują na portach przez MPTCP, o ile pozwala na to jądro. Administrator może nawet nie wiedzieć, że jego serwer akceptuje takie połączenia. Wśród popularnych programów, Xray działa w ten sposób — jego twórcy wydali już wersję awaryjną v26.10.31, która domyślnie wyłącza MPTCP.
Każdy VPS ma własne jądro, więc musisz samodzielnie aktualizować jądro na swoim serwerze. Aktualizujemy węzły wirtualizacji sami.
Czy istnieje poprawka dla Twojego systemu?
Stan na 1 listopada 2026 r. Poprawki pojawiają się niemal codziennie — sprawdź linki na końcu artykułu, aby sprawdzić aktualny stan.
| Konfiguracja | Status | Naprawiono jądro |
|---|---|---|
| Debian 13 | Stały | linux 6.12.113-1 |
| Debian 12 | Stały | linux 6.1.190-1 |
| Ubuntu 22.04, 24.04, 26.04 | Naprawa w toku | Jeszcze nie — skorzystaj z ochrony tymczasowej |
| AlmaLinux 8, 9, 10 | Poprawka w repozytorium testowym | 8: 4.18.0-553.180.2.el8_10 9: 5.14.0-687.61.2.el9_8 10: 6.12.0-211.69.2.el10_2 |
| Rocky Linux, RHEL 8, 9, 10 | Na razie nie ma rozwiązania | Użyj tymczasowej ochrony |
| Oracle Linux 7–10 (UEK) | Stały | Poprzez standardową aktualizację |
| SUSE / openSUSE Leap 16 | Stały | Poprzez standardową aktualizację |
Krok 1. Sprawdź, jakiego jądra używasz
Sprawdź wersję uruchomionego jądra:
uname -r
Sam numer wersji nic nie mówi: dystrybucje wgrywają poprawki do własnych kerneli, nie zmieniając wersji bazowej. Bardziej wiarygodne jest sprawdzenie rejestru zmian pakietów kernela – jeśli jest w nim podany numer CVE, poprawka jest już zainstalowana.
Debian i Ubuntu:
apt changelog linux-image-$(uname -r) 2>/dev/null | grep CVE-2026-98432
W Debianie uname -v Polecenie pokazuje również pełną wersję pakietu uruchomionego jądra: porównaj ją z tabelą powyżej.
AlmaLinux, Rocky Linux, RHEL, Oracle Linux:
rpm -q --changelog kernel-core-$(uname -r) | grep CVE-2026-98432
Jeżeli polecenie nic nie wyświetli, działające jądro jest podatne na atak.
Następnie sprawdź, które usługi akceptują połączenia przez MPTCP. Serwery takie jak te były celem zaprezentowanego ataku:
ss -lnMp
Pusty wynik oznacza, że nie ma programów nasłuchujących MPTCP.
Krok 2. Zainstaluj poprawioną wersję jądra
Przed aktualizacją jądra wykonaj kopię zapasową lub migawkę serwera.
Debian 12 i 13
Poprawione kernele znajdują się w repozytorium zabezpieczeń. Upewnij się, że jest włączone:
grep -r security.debian.org /etc/apt/sources.list /etc/apt/sources.list.d/
Jeśli nic nie zostanie znalezione, dodaj security.debian.org repozytorium dla swojego wydania. Następnie zaktualizuj system:
apt update
apt full-upgrade
reboot
Ubuntu
Poprawione kernele nie zostały jeszcze wydane. Sprawdź aktualizacje:
apt update
apt list --upgradable | grep linux-image
Jeśli Twój serwer jest podłączony do Ubuntu Pro, możesz sprawdzić plan naprawczy:
pro fix CVE-2026-98432 --dry-run
Po udostępnieniu poprawki zainstaluj ją i uruchom ponownie:
apt update
apt full-upgrade
reboot
Do tego czasu pamiętaj o zastosowaniu tymczasowej ochrony z kroku 3.
AlmaLinux 8, 9, 10
Poprawione kernele są obecnie dostępne tylko w repozytorium testowym. Zainstaluj je, jeśli czujesz się na siłach, aby zrobić to na serwerze produkcyjnym, i pamiętaj o zrobieniu migawki przed aktualizacją:
dnf install -y almalinux-release-testing
dnf update 'kernel*' --enablerepo=almalinux-testing
dnf config-manager --disable almalinux-testing
reboot
Po ponownym uruchomieniu porównaj uname -r z wersjami z powyższej tabeli. Jeśli wolisz nie instalować pakietów testowych, zastosuj tymczasową ochronę i poczekaj, aż poprawka dotrze do głównego repozytorium.
Rocky Linux i inne systemy oparte na RHEL
Nie ma jeszcze rozwiązania. Możesz je znaleźć, korzystając z:
dnf --refresh updateinfo info --all --cves CVE-2026-98432
Po wydaniu poprawki:
dnf update kernel
reboot
Po aktualizacji: wymagane jest ponowne uruchomienie
Nowe jądro zacznie działać dopiero po ponownym uruchomieniu. Aby sprawdzić, czy jest potrzebne:
# Debian and Ubuntu
[ -f /var/run/reboot-required ] && echo "Reboot required"
# AlmaLinux, Rocky, RHEL
needs-restarting -r
Po ponownym uruchomieniu należy powtórzyć sprawdzanie od kroku 1.
Krok 3. Tymczasowa ochrona do czasu udostępnienia stałego jądra
Środki te redukują ryzyko, ale nie zastępują aktualizacji jądra.
Zablokuj pakiety wyzwalające
Atak wykorzystuje pakiety TCP z opcjami IP w nagłówku IPv4. Praktycznie nigdy nie pojawiają się one w normalnym ruchu, a RFC 7126 już zaleca ich odrzucanie. Poniższa reguła nftables odrzuca wszystkie przychodzące pakiety TCP IPv4 z opcjami i nie wpływa na IPv6, UDP ani ICMP. Działa ona równolegle z ufw i firewalld.
Zainstaluj nftables, jeśli jeszcze nie jest zainstalowany:
# Debian and Ubuntu
apt install -y nftables
# AlmaLinux, Rocky, RHEL
dnf install -y nftables
Utwórz plik reguł:
cat > /etc/cve-2026-98432.nft <<'EOF'
table ip cve_2026_98432 {
chain pre {
type filter hook prerouting priority -300; policy accept;
meta l4proto tcp ip hdrlength gt 5 counter drop
}
}
EOF
Aby przywrócić regułę po każdym ponownym uruchomieniu, utwórz usługę systemd:
cat > /etc/systemd/system/cve-2026-98432.service <<'EOF'
[Unit]
Description=Mitigation for CVE-2026-98432
After=network-pre.target nftables.service firewalld.service ufw.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=-/usr/sbin/nft delete table ip cve_2026_98432
ExecStart=/usr/sbin/nft -f /etc/cve-2026-98432.nft
ExecStop=/usr/sbin/nft delete table ip cve_2026_98432
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now cve-2026-98432.service
Sprawdź, czy reguła jest załadowana:
nft list table ip cve_2026_98432
Jeśli ponownie uruchomisz usługę nftables za pomocą globalnego flush ruleset rządzić, rządzić systemctl restart cve-2026-98432 potem.
Ważne: nie stosuj tej reguły w sieciach korzystających z etykiet CIPSO (SELinux lub Smack NetLabel) — opcje IP są tam standardowo używane. Jeśli Twój serwer kieruje ruch do innych maszyn, reguła również odrzuci ich pakiety TCP z opcjami IP.
Wyłącz protokół MPTCP, jeśli go nie potrzebujesz
sysctl -w net.mptcp.enabled=0
echo "net.mptcp.enabled = 0" > /etc/sysctl.d/99-disable-mptcp.conf
To ustawienie zapobiega jedynie nowych Gniazda MPTCP nie będą tworzone. Usługi, które już działają, będą nadal nasłuchiwać przez MPTCP, dlatego należy ponownie uruchomić każdą usługę wymienioną przez ss -lnMp i upewnij się, że jego wyjście jest teraz puste.
W systemie AlmaLinux protokół MPTCP jest domyślnie wyłączony, chyba że użytkownik włączy go samodzielnie.
Wyłącz MPTCP w programach Go
W przypadku usług utworzonych w Go 1.24 lub nowszym można wyłączyć protokół MPTCP za pomocą zmiennej środowiskowej. Na przykład w przypadku usługi o nazwie myservice:
systemctl edit myservice
Dodaj do otwartego pliku następujący kod:
[Service]
Environment=GODEBUG=multipathtcp=0
Następnie uruchom ponownie usługę:
systemctl restart myservice
Aktualizacja rentgenowska
Jeśli na Twoim serwerze działa Xray, zaktualizuj go do wersji 26.10.31 lub nowszej. Poprzednia wersja, 26.10.29, została wycofana przez twórców. Ta aktualizacja wyłącza protokół MPTCP, ale nie naprawia jądra, więc aktualizacja jądra nadal jest wymagana.
Sprawdź jeszcze jedno ustawienie
Druga, węższa ścieżka eksploatacji wymaga włączenia migracji żądań. Domyślnie jest wyłączona — upewnij się, że jest:
sysctl net.ipv4.tcp_migrate_req
Polecenie powinno wydrukować 0.
Ogranicz dostęp do swoich usług
Zamknij wszystkie porty zapory sieciowej, które nie muszą być dostępne z internetu. W miarę możliwości otwieraj usługi administracyjne – SSH, panele sterowania, bazy danych – tylko dla zaufanych adresów IP.
Krok 4. Po zainstalowaniu poprawionego jądra
- Uruchom ponownie serwer i użyj poleceń z kroku 1, aby potwierdzić, że naprawiony kernel działa.
- Możesz usunąć tymczasową regułę:
systemctl disable --now cve-2026-98432.service
rm /etc/systemd/system/cve-2026-98432.service /etc/cve-2026-98432.nft
systemctl daemon-reload - Jeśli potrzebujesz MPTCP, przywróć ustawienie: usuń
/etc/sysctl.d/99-disable-mptcp.confi biegnijsysctl -w net.mptcp.enabled=1.
Jeśli coś pójdzie nie tak
Jeśli serwer nie uruchamia się po aktualizacji jądra, połącz się przez konsolę VNC w Panelu sterowania i wybierz poprzednią wersję jądra w menu rozruchu. Jeśli nie masz pewności, czy poradzisz sobie z tym samodzielnie lub potrzebujesz pomocy z aktualizacją, skontaktuj się z naszym zespołem wsparcia.