Linux çekirdek güvenlik açığı CVE-2026-98432: geçici engelleme ve çekirdek yamasını uygulama

Test ortamıRHEL ailesiAlmaLinux 9.8LightsailÇekirdek 5.14.0-687.55.1.el9_8 → 5.14.0-687.64.1.el9_82026-11-03 tarihinde kontrol edildi
Sürüm dizeleri ve SSH port numarası örnek değerlerdir; yalnızca düzeltilmiş çekirdek 5.14.0-687.64.1.el9_8 AlmaLinux duyurusundaki değerdir

CVE-2026-98432, IPv4 TCP bağlantılarını kabul eden çekirdek kodunun serbest bırakılmış belleği yeniden okuduğu bir Linux çekirdek güvenlik açığıdır ve Linux çekirdeği CVE ekibi tarafından Critical olarak derecelendirilmiştir. Kimlik doğrulama olmadan uzaktan saldırıya açık bir kusur olduğu için Nginx ve Apache yapılandırmalı AlmaLinux 9.8 Lightsail sunucusunu düzeltilmiş çekirdek paketlerine güncelledik, yeniden başlattık ve ardından çalışan çekirdek sürümüyle yamayı doğruladık.

1️⃣ Linux çekirdek güvenlik açığı CVE-2026-98432: kusurun işleyişi ve etki alanı

IPv4 seçenekleri taşıyan bir TCP bağlantı isteği (SYN) geldiğinde çekirdek, bu seçenekleri yanıtında (SYN-ACK) geri gönderebilmek için bir kopyasını bekleyen bağlantıyla birlikte saklar. Bağlantı kurulduğunda bu kopya çoğaltılmadan doğrudan yeni bağlantının soketine geçer.

Bu arada istemci SYN'i yeniden gönderirse başka bir CPU aynı seçeneklerle SYN-ACK oluşturuyor olabilir. Bu sırada yeni bağlantı kapanır ve çekirdek seçenek belleğini hemen serbest bırakırsa, SYN-ACK'i oluşturan kod serbest bırakılmış belleği okur; bu bir use-after-free durumudur.

Bu kod, uygulama bağlantıyı görmeden önce, çekirdeğin bağlantı isteğini işlediği aşamada çalışır. Bu nedenle portu hangi hizmet açmış olursa olsun, IPv4 TCP üzerinden dinleniyorsa saldırı ona kimlik bilgisi olmadan uzaktan ulaşabilir ve puan CVSS 3.1'e göre 9.8'dir.

Kusur Linux 4.4'ten beri var olduğu için Linux sunucularının çoğu etkilenir. AWS kılavuzu, Lightsail blueprint'leri arasından AlmaLinux 9, CentOS Stream 9, Debian, openSUSE Leap, Ubuntu ile Amazon Linux 2 ve Amazon Linux 2023'ü sayıyor. AlmaLinux duyurusu 8, 9 ve 10'un tümünü kapsam içinde sayıyor; Lightsail'in WordPress ve LAMP gibi uygulama blueprint'leri de Debian veya Ubuntu üzerinde çalıştığı için aynı şekilde etkilenir.

Linux çekirdeği kullanmayan FreeBSD ve Windows Server kapsam dışındadır.

MPTCP'yi (Multipath TCP) kapatmış sunucular da yama gerektirir. Yayımlanan saldırı, MPTCP dinleyicisi açık sunucuları hedefledi; ancak kusurun kendisi olağan IPv4 TCP kodunda olduğu için AlmaLinux duyurusu da MPTCP olmayan sistemlerin de düzeltilmesi gerektiğini belirtiyor.

Düzeltilmiş çekirdek, seçenek belleğini ancak bir RCU bekleme süresi (grace period) geçtikten sonra serbest bırakır; böylece başka bir CPU SYN-ACK oluştururken seçenekleri okuduğu sürece bellek yerinde kalır.

🧩 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 çekirdek sürümünü kontrol etme: çekirdek düzeltilmiş mi?

Yamanın gerekip gerekmediği çalışan çekirdek sürümüne bağlı olduğundan, güncellemeden önce dağıtımı ve çekirdek sürümünü kontrol ettik.

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

Dağıtım AlmaLinux 9.8, çalışan çekirdek 5.14.0-687.55.1.el9_8 idi. Geçici engelleme kuralında kullanılan nft komutu da yoktu; yani nftables paketi kurulu değildi.

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] kurulu çekirdeklerin listesini gösterir, ancak yeniden başlatana kadar gerçekten çalışan, [uname -r] çıktısındaki tek çekirdektir. Bu sürümü AlmaLinux duyurusundaki düzeltilmiş sürümle karşılaştırın.

DağıtımDüzeltilmiş çekirdek sürümü (bu sürüm veya üstü)
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'un düzeltilmiş sürümü olan 5.14.0-687.64.1.el9_8'den düşük olduğu için güncellenmesi gerekiyordu.

Saldırının ulaşabileceği bir yolun açık olup olmadığını görmek için dinlenen IPv4 TCP portlarını ve MPTCP durumunu kontrol ettik.

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

Tüm adreslerde (0.0.0.0) dinlenen IPv4 TCP portları, web sunucusunun 80 ve 443 portları ile SSH'nin 22 portuydu.

[net.mptcp.enabled] 0'dı ve MPTCP soketi de yoktu; bu yüzden yayımlanan saldırının kullandığı MPTCP yolu kapalıydı. Ancak kusur olağan IPv4 TCP bağlantılarından başladığı için üç IPv4 portunu dinleyen sunucu yine de yama gerektirir.

3️⃣ Linux çekirdek güncellemesi: yedi çekirdek paketi ve yeniden başlatma

Çekirdeği değiştirmeden önce Lightsail konsolunda örneğin elle bir anlık görüntüsünü aldık. Lightsail'de açılışta kullanılacak çekirdeği seçen bir ekran olmadığından, sunucu yeni çekirdekle açılmazsa bu anlık görüntüden yeni bir örnek oluşturarak geri dönersiniz.

🔲 Lightsail anlık görüntü simülatörü

📍 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 çekirdek güncellemesini ve yeniden başlatmayı kontrol etme

Depoda yayımlanan düzeltilmiş çekirdek sürümünü bir dnf listesiyle kontrol ettik.

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

Yalnızca kernel-core paket dosyasını geçerli klasöre indirir, kurulum yapmaz.

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}

İmza OK idi ve değişiklik kaydında CVE-2026-98432'yi düzelten bir satır vardı. 3 Kasım'da kontrol ettiğimiz dnf güvenlik bildirimlerinde (updateinfo) bu CVE henüz yoktu; bu yüzden [dnf upgrade --security] ile bu çekirdek alınamıyordu.

Bu nedenle yedi çekirdek paketini sürümünü de belirterek kurduk.

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!

Dört yeni çekirdek paketi kuruldu, kernel-headers, kernel-tools ve kernel-tools-libs olmak üzere üç paket yükseltildi ve başka hiçbir paket değişmedi. Kurulu çekirdeklerden en fazla üçünü tutan [installonly_limit=3] ayarı nedeniyle en eski 5.14.0-611.30.1.el9_7 sürümünün dört paketi kaldırıldı; indirmeden tamamlanmaya kadar 74 saniye sürdü.

AlmaLinux duyurusunun önerdiği resmî komut, depo bilgilerini yeniden aldıktan sonra güncellemesi olan tüm paketleri yükseltir.

sudo dnf clean metadata && sudo dnf upgrade

Çekirdek dışındaki paketler de birlikte yükseltildiği için dağıtım sürümünün tamamını yükseltme adımları için Alma Linux güncellemesi: LightSail'de 9.4 → 9.8 sayfasına bakabilirsiniz.

Yeni çekirdek ancak yeniden başlattıktan sonra devreye girer.

systemctl reboot

Sunucu yeniden açıldıktan sonra sırasıyla çalışan çekirdeği, kurulu çekirdekleri ve varsayılan çekirdeği kontrol ettik.

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

Sunucu yeniden başlatma komutundan sonra bir dakikadan kısa sürede açıldı; hem çalışan çekirdek hem de sonraki açılışta kullanılacak varsayılan çekirdek 5.14.0-687.64.1.el9_8 oldu. Önceki çekirdek 5.14.0-687.55.1.el9_8 hâlâ duruyor; yeni çekirdekte sorun çıkarsa varsayılan çekirdeği geri alabilirsiniz.

ÖğeYama öncesiYama sonrası
Çalışan çekirdek (uname -r)5.14.0-687.55.1.el9_85.14.0-687.64.1.el9_8
Varsayılan çekirdek (grubby)5.14.0-687.55.1.el9_85.14.0-687.64.1.el9_8
Kurulu çekirdekler (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️⃣ Yeniden başlatmadan önce geçici engelleme: nft kuralları ve sınırları

Hemen yeniden başlatamıyorsanız düzeltilmiş çekirdeği kurana kadar kusuru tetikleyen paketleri geçici bir kuralla engelleyebilirsiniz. Bu bölümdeki komutları kendimiz çalıştırmadık; resmî yönergelere (AlmaLinux ve AWS duyuruları) dayanır.

Nginx ve Apache yapılandırmalı AlmaLinux 9.8 Lightsail sunucusunda yeniden başlatma birkaç dakikada bittiği için geçici engelleme yapmadan çekirdeği hemen güncelledik.

Kusur yalnızca IPv4 seçenekleri taşıyan TCP bağlantı istekleriyle tetiklenir. Olağan trafik IPv4 seçeneklerini neredeyse hiç kullanmadığından, yalnızca seçenek taşıyan IPv4 TCP paketlerini engellemeniz olağan bağlantıları etkilemez.

sudo dnf install -y nftables

nft komutu, firewalld ile birlikte kurulan nftables paketinde bulunur. Sunucunuzda komut yoksa önce bu paketi kurun.

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 başlık uzunluğu 5'ten büyük olan TCP paketlerini, yani IPv4 seçenekleri taşıyan paketleri prerouting aşamasında engelleyen bir tablo oluşturur. AlmaLinux'un 8, 9 ve 10 üzerinde denediği bir kuraldır; firewalld ile birlikte kullanılabilir ve birden çok kez çalıştırmak güvenlidir.

sudo nft list table ip cve_2026_98432

Kuralın eklenip eklenmediğini kontrol eder; çıktıdaki counter değeri şimdiye kadar engellenen paket sayısıdır.

sudo nft delete table ip cve_2026_98432

Düzeltilmiş çekirdekle yeniden başlattıktan sonra tabloyu bu komutla silin.

Bu kural yeniden başlatınca kaybolur; düzeltilmiş çekirdeği kurmadan önce yeniden başlattıysanız tabloyu oluşturan komutu tekrar çalıştırın.

IPv4 seçeneklerine dayanan uygulamaların bulunduğu sunucular için bu kural uygun değildir. IPv4 seçeneklerinde taşınan CIPSO güvenlik etiketlerini (NetLabel) kullanan ağlar buna örnektir; varsayılan yapılandırmada kullanılmaz.

Kural, ana makineyi ve trafiği ana makine üzerinden alan kapsayıcıları (Podman ve Docker'ın varsayılan yöntemi) korur. Aynı ana makinedeki kapsayıcılar arasında gidip gelen trafik bu kuralı atlayabilir.

Debian, Ubuntu ve openSUSE'de AWS kılavuzundaki tek satırlık iptables kuralını kullanın. AlmaLinux 9 ve CentOS Stream 9 çekirdeklerinde bu kuralın kullandığı u32 eşleşmesi olmadığından yukarıdaki nft kuralıyla devam edin.

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

u32 ifadesi IPv4 başlık uzunluğu alanını okur; değer 5'ten büyükse paket IPv4 seçenekleri taşıyordur. Düzeltilmiş çekirdeği kurduktan sonra bu kuralı aşağıdaki komutla silin.

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

Lightsail güvenlik duvarında kullanılmayan portları kapatmak ve kalan portları yalnızca güvenilir IP adresleriyle sınırlamak da AWS kılavuzunun birlikte önerdiği bir yöntemdir.

🔢 SSS & önerilen içerikler

AlmaLinux ve AWS duyurularının ikisi de IPv6 bağlantılarının bu kusurun ana sorunundan etkilenmediğini ve geçici kurala da gerek olmadığını belirtiyor. Ancak yalnızca IPv6 kullandığını düşündüğünüz bir sunucuda bile SSH veya web sunucusu tek bir IPv4 TCP portunu dinliyorsa saldırı o porttan ulaşabilir; bu yüzden [ss -lnt4] ile kontrol edin ve çekirdek yamasını yine de uygulayın.

AlmaLinux duyurusu, TCP istek soketi taşıma özelliği (net.ipv4.tcp_migrate_req ayarı ya da istekleri taşıyan bir BPF programı) açık olduğunda da benzer bir sorun olduğunu belirtiyor. Bu ayar varsayılan olarak kapalıdır; açtıysanız düzeltilmiş çekirdeğe güncelledikten sonra AlmaLinux duyurusundaki güncellemeleri kontrol edin.

AWS kılavuzu, Debian 11 ve openSUSE Leap 15 için desteğin sona erdiğini ve bu sürümlerin çekirdek güncellemesi alamayabileceğini belirtiyor. AWS, bu tür sunuculara önce geçici güvenlik duvarı kuralını uygulamanızı ve desteklenen bir sürümün çalıştığı bir örneğe (instance) geçişi planlamanızı öneriyor.

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 4   +   6   =