CVE-2026-98432 Nedir? Linux Çekirdeğindeki Kritik TCP Açığına Karşı Sunucunuzu Koruyun

2 Kasım 2026Boran BAR

GüvenlikLinux

15 Ekim 2026'da yayımlanan CVE-2026-98432, Linux çekirdeğinin gelen IPv4 TCP bağlantılarını kurduğu kodda bulunan bir use-after-free (serbest bırakılmış belleğin yeniden kullanılması) açığıdır. Linux çekirdeği CVE ekibi açığa CVSS 9.8 (Kritik) puan verdi: saldırı ağ üzerinden yapılabiliyor, kullanıcı adı, parola ya da kullanıcı etkileşimi gerektirmiyor. İnternete açık bir TCP portu dinleyen hemen her Linux sunucu potansiyel olarak etkileniyor. Bu yazımızda açığın ne olduğunu, hangi sistemleri etkilediğini, Ubuntu başta olmak üzere sunucunuzda nasıl kontrol edeceğinizi ve yama gelene kadar alabileceğiniz geçici önlemleri adım adım anlatıyoruz.

Kısaca: Kalıcı çözüm, düzeltilmiş çekirdeğe güncelleyip sunucuyu yeniden başlatmaktır. Yama henüz dağıtımınıza gelmediyse aşağıdaki "Geçici önlemler" bölümündeki nftables kuralını uygulayın ve kullanmıyorsanız MPTCP'yi kapatın.

CVE-2026-98432 nedir?

Bir istemci sunucunuza TCP bağlantısı açmak istediğinde ilk olarak bir SYN paketi gönderir. Bu paket IPv4 seçenekleri (IP options; ör. Record Route, Timestamp) taşıyorsa çekirdek bu seçeneklerin bir kopyasını bekleyen bağlantıyla birlikte saklar ve yanıt olarak göndereceği SYN-ACK paketinde geri yansıtır. El sıkışma tamamlandığında bu kopya, çoğaltılmadan doğrudan yeni bağlantının soketine devredilir.

Sorun şu noktada ortaya çıkıyor: İstemci SYN paketini yeniden gönderirse, başka bir işlemci çekirdeği aynı anda bu seçeneklerden bir SYN-ACK hazırlıyor olabilir. Bu sırada yeni bağlantı kapatılıp soketi serbest bırakılırsa, çekirdek seçenekleri hemen siler ve SYN-ACK'i hazırlayan kod artık serbest bırakılmış belleği okur. Bu tür bir yarış durumu (race condition), saldırgan tarafından tekrar tekrar tetiklenebilir.

Hata, Linux 4.4 ile gelen 079096f103fa ("tcp/dccp: install syn_recv requests into ehash table") değişikliğinden beri çekirdekte bulunuyor. TCP istek soketi taşıma özelliği (net.ipv4.tcp_migrate_req=1 ya da istekleri taşıyan bir BPF programı) açık olan sistemlerde benzer ikinci bir yol daha var; bu ayar varsayılan olarak kapalıdır.

Açığı Anthropic araştırmacısı Xinyang Ge bildirdi; düzeltmeyi Eric Dumazet yazdı. Düzeltme, seçenekleri hemen silmek yerine RCU bekleme süresi dolduktan sonra (kfree_rcu()) serbest bırakıyor; yani başka bir işlemci hâlâ okuyorken bellek silinmiyor. Düzeltme Linux 7.3 ile ana dala girdi ve bakımı süren bütün kararlı (stable) çekirdek dallarına aktarıldı.

Açık neden bu kadar kritik?

Kritik puanın nedeni, açığa ulaşmanın son derece kolay olmasıdır:

  • Uygulamadan önce tetikleniyor: Hatalı kod, bağlantı daha hiçbir uygulamaya (web sunucusu, SSH, veritabanı) ulaşmadan, çekirdeğin TCP el sıkışması sırasında çalışıyor. Uygulamanızın ne kadar güvenli olduğu bu açık açısından fark etmiyor.

  • Kimlik doğrulama gerekmiyor: Saldırganın dinleyen bir IPv4 TCP portuna IP seçenekleri taşıyan SYN paketleri göndermesi yeterli.

  • Bellek sızıntısı ve kod çalıştırma: CVE kaydına göre serbest bırakılan alan yeniden doldurulduğunda çekirdek belleğinin bir kısmı SYN-ACK içinde saldırgana gönderilebiliyor, sınır dışı yazma yapılabiliyor ya da çekirdek çökebiliyor (kernel panic).

  • Başarısız deneme sistemi çökertmiyor: Kaybedilen bir yarış yalnızca o el sıkışmasını bozuyor; saldırgan başarılı olana kadar tekrar deneyebiliyor.

Anthropic'in yayımladığı araştırmaya göre, MPTCP (Multipath TCP) dinleyicisi bulunan Linux sunucularda bu açık kullanılarak uzaktan, kimlik bilgisi olmadan root yetkisiyle komut çalıştırmak mümkün. Kavram kanıtında çekirdek adresini sızdırmak yaklaşık 48 dakika, komut çalıştırmak ise bunun üzerine 5 dakika sürmüş. Gösterilen saldırı MPTCP gerektirse de hata standart IPv4 TCP kodunda olduğundan MPTCP kullanmayan sistemlerin de yamayı uygulaması gerekiyor.

Hangi sistemler etkileniyor?

  • Çekirdek sürümü: Linux 4.4 ve sonrasındaki, düzeltmeyi içermeyen bütün çekirdekler. 4.4 öncesi çekirdekler etkilenmiyor.

  • Protokol: IPv4 TCP bağlantıları kabul eden sistemler. IPv6 ana hatadan etkilenmiyor.

  • Dağıtımlar: Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS ve diğer dağıtımlar; sorun dağıtıma değil çekirdeğe özgü.

  • Container'lar: Docker ve Podman container'ları ana makinenin çekirdeğini kullanır. Container içindeki işletim sistemini güncellemek bu açığı kapatmaz; ana sunucunun çekirdeği güncellenmelidir.

Çekirdek CVE ekibinin bildirdiği düzeltilmiş kararlı sürümler şunlardır; kendi derlediğiniz ya da doğrudan kernel.org çekirdeği kullanıyorsanız en az bu sürümlere geçin:

Çekirdek dalı

Düzeltmeyi içeren ilk sürüm

5.10

5.10.272

5.15

5.15.223

6.1

6.1.190

6.6

6.6.159

6.12

6.12.113

6.18

6.18.56

7.2

7.2.10

7.3

7.3 (ana dal)

Dağıtım çekirdeklerinin sürüm numaraları farklıdır (ör. Ubuntu'da 6.8.0-…); bu yüzden dağıtımınızın güvenlik sayfasını esas alın.

Ubuntu'da güncel durum

Ubuntu açığı Yüksek (High) öncelikli olarak sınıflandırdı. Ubuntu güvenlik sayfasında 30 Ekim 2026'da güncellenen bilgilere göre, bu yazının hazırlandığı 2 Kasım 2026 itibarıyla desteklenen bütün sürümler "Vulnerable" (etkilenen) durumunda ve düzeltilmiş çekirdekler hazırlanıyor:

Ubuntu sürümü

Paket

Durum (2 Kasım 2026)

26.04 LTS

linux

Hazırlanıyor: 7.0.0-43.43

24.04 LTS

linux

Hazırlanıyor: 6.8.0-149.149

24.04 LTS (HWE)

linux-hwe-6.17, linux-hwe-7.0

Etkilenen

22.04 LTS

linux

Hazırlanıyor: 5.15.0-203.213

22.04 LTS (HWE)

linux-hwe-6.8

Hazırlanıyor: 6.8.0-149.149~22.04.1

20.04 / 18.04 / 16.04 LTS

linux

Etkilenen (standart destek sona erdi)

14.04 LTS

linux

Etkilenmiyor

Standart desteği sona eren 20.04, 18.04 ve 16.04 sürümlerinde güvenlik güncellemeleri yalnızca Ubuntu Pro (ESM) üzerinden gelir. Bu sürümleri kullanıyorsanız desteklenen bir LTS sürümüne geçişi planlamanızı öneririz. Durum değiştikçe güncel bilgiyi Ubuntu CVE-2026-98432 sayfasından takip edebilirsiniz.

Diğer dağıtımlarda durum şöyle: Debian, düzeltmeyi bookworm (6.1.190-1) ve trixie (6.12.113-1) güvenlik depolarında yayımladı. AlmaLinux 8, 9 ve 10 için düzeltilmiş çekirdekler 30 Ekim 2026 itibarıyla test deposunda.

Sunucunuzu adım adım kontrol edin

1. Adım: Çalışan çekirdek sürümünü öğrenin

uname -r

Önemli olan kurulu değil, çalışan çekirdektir. Güncelleme yapıp sunucuyu yeniden başlatmadıysanız eski çekirdek çalışmaya devam eder.

2. Adım: Ubuntu'da sisteminizin etkilenip etkilenmediğini sorgulayın

Ubuntu'da hazır gelen Ubuntu Pro Client (pro), bir CVE'nin sisteminizi etkileyip etkilemediğini ve düzeltmenin yayımlanıp yayımlanmadığını gösterir. --dry-run seçeneği sistemde hiçbir değişiklik yapmaz:

pro fix --dry-run CVE-2026-98432

Çıktının sonunda açığın sisteminizi etkileyip etkilemediği ve düzeltmenin uygulanıp uygulanamayacağı yazar.

3. Adım: MPTCP açık mı ve kullanılıyor mu?

Linux çekirdeğinde MPTCP varsayılan olarak açıktır (net.mptcp.enabled = 1). Bu ayar yalnızca uygulamaların MPTCP soketi açabilmesine izin verir; asıl risk, MPTCP ile dinleyen bir servisin bulunmasıdır:

sysctl net.mptcp.enabled
sudo ss -lnMp

ss -lnMp komutu MPTCP ile dinleyen servisleri listeler. Go 1.24 ve sonrasıyla derlenen programlar Linux'ta dinleme soketlerinde MPTCP'yi varsayılan olarak açar; sunucunuzda Go ile yazılmış bir servis (ör. Caddy, Traefik gibi araçlar veya kendi uygulamanız) çalışıyorsa bu listede görünebilir.

Kalıcı çözüm: Çekirdeği güncelleyin ve yeniden başlatın

Dağıtımınız düzeltilmiş çekirdeği yayımladığında güncellemeyi kurup sunucuyu yeniden başlatmanız gerekir.

Ubuntu / Debian:

sudo apt update
sudo apt full-upgrade
sudo reboot

AlmaLinux / Rocky Linux:

sudo dnf update 'kernel*'
sudo reboot

Yeniden başlattıktan sonra uname -r ile yeni çekirdeğin çalıştığını, Ubuntu'da ise pro fix --dry-run CVE-2026-98432 ile açığın kapandığını doğrulayın.

Önemli: Yeniden başlatma birkaç dakikalık kesintiye neden olur. Canlı servislerinizi etkilememek için düşük trafikli bir saat seçin ve öncesinde güncel bir yedeğiniz olduğundan emin olun.

Yama gelene kadar geçici önlemler

Aşağıdaki adımlar açığı kapatmaz, yalnızca bilinen tetikleme yolunu engeller. Düzeltilmiş çekirdek yayımlandığında mutlaka güncelleyin.

1. IPv4 seçenekleri taşıyan TCP paketlerini engelleyin

Açık yalnızca IPv4 seçenekleri taşıyan bir TCP bağlantı isteğiyle tetiklenebiliyor. Normal internet trafiği neredeyse hiç IPv4 seçeneği kullanmadığından bu paketleri düşürmek olağan bağlantıları etkilemez. AlmaLinux ekibinin yayımladığı ve test ettiği nftables kuralı şudur:

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

Kural, IP başlığı standart 20 bayttan uzun olan (yani seçenek taşıyan) bütün IPv4 TCP paketlerini düşürür. Ayrı bir tabloda çalıştığı için ufw, firewalld ya da CSF kurallarınızı değiştirmez ve birden fazla çalıştırılması sorun çıkarmaz. nft komutu yoksa önce paketi kurun: Ubuntu/Debian'da sudo apt install nftables, AlmaLinux'ta sudo dnf install nftables.

Kuralın çalıştığını ve kaç paket düşürdüğünü görmek için:

sudo nft list table ip cve_2026_98432

Kuralı kaldırmak için:

sudo nft delete table ip cve_2026_98432

Dikkat edilmesi gerekenler:

  • Kural yeniden başlatmadan sonra silinir. Düzeltilmiş çekirdeği kurmadan sunucuyu yeniden başlatırsanız komutu tekrar çalıştırın.

  • Ana makineye gelen ve oradan container'lara yönlendirilen trafik (Docker ve Podman'ın varsayılan yapısı) korunur; ancak aynı sunucudaki container'lar arasındaki trafik kuralı atlayabilir.

  • Sunucunuz başka makineler için yönlendirme (router) yapıyorsa, yönlendirilen IPv4 seçenekli TCP paketleri de düşürülür.

  • Ağınızda CIPSO güvenlik etiketleri (NetLabel) kullanılıyorsa bu kuralı uygulamayın. Bu yapı varsayılan olarak kullanılmaz.

  • IPv6 trafiği için bu kurala gerek yoktur.

2. Kullanmıyorsanız MPTCP'yi kapatın

Gösterilen root yetkili saldırı MPTCP dinleyicisi gerektiriyor. MPTCP'ye ihtiyacınız yoksa (sunucuların büyük çoğunluğunda yoktur) kapatın ve yeniden başlatmada da kapalı kalmasını sağlayın:

echo 'net.mptcp.enabled = 0' | sudo tee /etc/sysctl.d/90-disable-mptcp.conf
sudo sysctl -w net.mptcp.enabled=0

Bu ayar yalnızca yeni MPTCP soketlerinin açılmasını engeller. Hâlihazırda açık olan MPTCP dinleyicilerini sudo ss -lnMp ile listeleyip ilgili servisleri yeniden başlatın (ör. sudo systemctl restart caddy).

Go ile yazdığınız kendi uygulamalarınızda MPTCP'yi yalnızca o program için kapatmak isterseniz, programı GODEBUG=multipathtcp=0 ortam değişkeniyle başlatabilir ya da go.mod dosyasına godebug multipathtcp=0 satırını ekleyebilirsiniz. Go güvenlik ekibi bu yöntemin kırılgan olduğunu, tek bir açık kalan dinleyicinin sistemi savunmasız bırakacağını vurguluyor; sistem genelinde kapatmak daha güvenlidir.

3. Ek sertleştirme: init_on_free=1 (isteğe bağlı)

init_on_free=1 çekirdek açılış parametresi, serbest bırakılan belleği sıfırlar. Hatayı düzeltmez; ancak serbest bırakılmış alan okunduğunda eski içerik yerine sıfır döneceği için saldırganın sızdırabileceği bilgiyi azaltır. Bellek yoğun iş yüklerinde yaklaşık %1–5 performans maliyeti olduğu belirtiliyor; kendi sunucunuzda ölçerek karar verin. AlmaLinux / Rocky Linux'ta:

sudo grubby --update-kernel=ALL --args="init_on_free=1"
sudo reboot
grep -o init_on_free=1 /proc/cmdline

Ubuntu'da aynı parametreyi /etc/default/grub dosyasındaki GRUB_CMDLINE_LINUX_DEFAULT satırına ekleyip sudo update-grub komutunu çalıştırdıktan sonra sunucuyu yeniden başlatarak etkinleştirebilirsiniz.

Sıkça sorulan sorular

Paylaşımlı hosting kullanıyorum, bir şey yapmam gerekiyor mu?

Hayır. Paylaşımlı hosting paketlerinde çekirdek sunucu yöneticisinin sorumluluğundadır; sizin hesabınızdan çekirdeğe müdahale edemezsiniz. Bu yazıdaki adımlar root erişiminiz olan VDS ve sunucular içindir.

Sunucumu yeniden başlatmadan güncelleme yeterli mi?

Hayır. apt veya dnf yeni çekirdeği yalnızca diske kurar; sunucu yeniden başlatılana kadar eski, açığı barındıran çekirdek çalışmaya devam eder. uname -r çıktısı yeni sürümü gösteriyorsa güncelleme devrededir.

Sunucumda IPv6 de açık, o da risk altında mı?

Ana hata yalnızca IPv4'ü etkiliyor; IPv6 seçenekleri farklı biçimde işlendiğinden etkilenmiyor. Ancak sunucunuz IPv4 bağlantılarını da kabul ediyorsa yamayı uygulamanız gerekir.

Güvenlik duvarında yalnızca birkaç port açık, yine de etkilenir miyim?

Evet. Açık, dinleyen herhangi bir IPv4 TCP portu üzerinden tetiklenebilir; SSH (22) veya web (80/443) portunun açık olması yeterlidir. Kapalı portlar riski azaltır ama ortadan kaldırmaz.

Docker container'larımı güncellemem yeterli mi?

Hayır. Container'lar ana makinenin çekirdeğini paylaşır. Container imajlarını güncellemek bu açığı kapatmaz; ana sunucunun çekirdeğini güncelleyip yeniden başlatmanız gerekir.

nftables kuralı web sitemi veya e-postalarımı etkiler mi?

Normal web, e-posta ve SSH trafiği IPv4 seçenekleri kullanmadığından etkilenmez. Kural yalnızca IP başlığında seçenek taşıyan TCP paketlerini düşürür; kaç paketin düşürüldüğünü sudo nft list table ip cve_2026_98432 ile görebilirsiniz.

Resmî kaynaklar

Sonuç

CVE-2026-98432, kimlik doğrulama gerektirmeden ağ üzerinden tetiklenebildiği ve uygulama katmanına ulaşmadan çekirdekte çalıştığı için son yılların en ciddi Linux açıklarından biri. Kalıcı çözüm, dağıtımınızın yayımladığı düzeltilmiş çekirdeği kurup sunucuyu yeniden başlatmak. Ubuntu için düzeltmeler hazırlanırken nftables kuralını uygulamak ve kullanmıyorsanız MPTCP'yi kapatmak, bilinen saldırı yolunu büyük ölçüde engeller. Sunucunuzu kontrol ederken takılırsanız destek talebi açarak 7/24 Türkçe destek ekibimizden yardım alabilirsiniz.

Tam root erişimiyle çekirdek güncellemelerini kendiniz yönetebileceğiniz bir sunucu arıyorsanız Türkiye VDS paketlerimizi inceleyebilirsiniz.

CVE-2026-98432 Linux Çekirdeği TCP Açığı | TürkHosting