Linux çekirdek güvenlik açığı CVE-2026-98432: geçici engelleme ve çekirdek yamasını uygulama
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.
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-releaseNAME="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-01uname -r5.14.0-687.55.1.el9_8.x86_64nft --version-bash: nft: command not foundDağı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 kernelkernel-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ım | Düzeltilmiş çekirdek sürümü (bu sürüm veya üstü) |
|---|---|
| AlmaLinux 8 | kernel-4.18.0-553.182.1.el8_10 |
| AlmaLinux 9 | kernel-5.14.0-687.64.1.el9_8 |
| AlmaLinux 10 | kernel-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 -lnt4State 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.enablednet.mptcp.enabled = 0ss -lnMState Recv-Q Send-Q Local Address:Port Peer Address:PortTü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ü
Linux 기반 블루프린트를 사용하는 인스턴스에 취약점(CVE-2026-98432)이 발생할 수 있습니다. 인스턴스가 영향을 받는지 확인하고 사용 중인 Linux 배포판에 최신 보안 업데이트를 적용하는 것이 좋습니다.
(us-east-1a)
스냅샷을 생성하여 인스턴스, 해당 시스템 디스크 및 연결된 디스크를 백업할 수 있습니다.
일일 스냅샷 시간은 오전 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-headerskernel.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 appstreamdnf download kernel-core-5.14.0-687.64.1.el9_8Yalnı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: OKrpm -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 rebootSunucu yeniden açıldıktan sonra sırasıyla çalışan çekirdeği, kurulu çekirdekleri ve varsayılan çekirdeği kontrol ettik.
uname -r5.14.0-687.64.1.el9_8.x86_64rpm -q kernelkernel-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_64grubby --default-kernel/boot/vmlinuz-5.14.0-687.64.1.el9_8.x86_64Sunucu 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.
| Öğe | Yama öncesi | Yama sonrası |
|---|---|---|
| Çalışan çekirdek (uname -r) | 5.14.0-687.55.1.el9_8 | 5.14.0-687.64.1.el9_8 |
| Varsayılan çekirdek (grubby) | 5.14.0-687.55.1.el9_8 | 5.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_8 | 5.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 nftablesnft 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
}
}
EOFIPv4 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_98432Kuralı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_98432Dü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 DROPu32 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 DROPLightsail 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
Çekirdek sürümü
Linux çekirdek sürümünü kontrol etme komutları ve dağıtım sürümünü kontrol etme yöntemi
Linux'ta çekirdek sürümünü uname komutuyla kontrol edebilirsiniz.
ℹ️ 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.