Anthropic, çekirdek TCP yığınında kritik bir güvenlik açığı (CVE-2026-98432) tespit etti. LinuxBu, özel olarak hazırlanmış paketler göndererek uzaktan kod yürütülmesine olanak tanıyan bir güvenlik açığıdır. Çekirdek düzeyinde kod yürütülmesine ve sistemde uzaktan root ayrıcalıkları elde edilmesine olanak tanıyan çalışan bir güvenlik açığı rapor edilmiştir. Bu güvenlik açığı, Çok Yollu TCP (MPTCP) protokolünü destekleyen ağ soketleri aracılığıyla bağlantı kabul eden sunucu süreçlerine sahip sistemlere saldırmak için uygundur. MPTCP desteği, Go 1.24'ten (Şubat 2025) itibaren Go standart kütüphanesinde varsayılan olarak etkinleştirilen, ağ soketi başına etkinleştirilebilir.
Hazırlanan güvenlik açığı, Caddy HTTP sunucusu da dahil olmak üzere Go ile yazılmış herhangi bir sunucu uygulamasıyla kullanılabilir; yeter ki oluşturduğu dinleme soketine ağ paketleri gönderebilsin. Güvenlik açığı doğrudan IPv4 yığınında bulunduğundan ve MPTCP'ye özgü olmadığından, MPTCP'ye dayanmadan çalışan güvenlik açıkları oluşturmak mümkündür, ancak bu tür güvenlik açıkları henüz gösterilmemiştir. Örneğin, net.ipv4.tcp_migrate_req=1 parametresiyle yapılandırmalarda veya BPF_SK_REUSEPORT_SELECT_OR_MIGRATE seçeneğiyle eBPF programları kullanılırken soket geçiş isteklerinin işlenmesi sırasında güvenlik açığından yararlanmak mümkündür.
Bu güvenlik açığı, TCP bağlantısı kurulması sırasında yeniden iletilen SYN isteklerinin eş zamanlı işlenmesi sırasında ortaya çıkan bir yarış durumundan kaynaklanmaktadır. tcp_v4_syn_recv_sock() fonksiyonu, ireq->ireq_opt yapısındaki parametreleri kopyalamak yerine referans yoluyla alt sokete aktardığı için, belirli koşullar altında, soket parametrelerini içeren inet_opt ve ireq_opt yapıları için ayrılan bellek zaten serbest bırakılmış olmasına rağmen, ilgili soket seçeneklerinin kullanılmaya devam ettiği bir durum ortaya çıkar (serbest bırakıldıktan sonra kullanım).
Uzaktan istismar, zaman senkronize edilmiş bir dizi ağ isteği gönderilerek gerçekleştirilir. İstismar, adres rastgeleleştirmesi (KASLR) kullanan çekirdeklere başarıyla uygulanır, ancak yarış koşulu penceresine ulaşmak önemli miktarda zaman alır ve çok sayıda yeniden deneme gerektirir. İstismar, yarış koşulu penceresini kaçırmanın çekirdek çökmesi yerine yalnızca bir el sıkışmayla sonuçlanması nedeniyle basitleştirilir ve bu da sınırsız denemeye olanak tanır. İstismar prototipinde, saldırı yaklaşık bir saat sürdü; 48 dakika bellek düzenini belirlemek ve 5 dakika da kod yürütmeyi organize etmek için harcandı.
Şu an için güvenlik açığını kesin olarak giderecek bir çözüm yolu mevcut değil; tek güvenilir seçenek çekirdek güncellemesi yüklemektir. Sorun, çekirdekten başlayarak kendini gösteriyor. Linux 4.4 sürümünde tespit edilen ve 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 ve 7.3 sürümlerinde düzeltilen güvenlik açığının dağıtımlardaki durumu şu sayfalardan değerlendirilebilir: Debian, UbuntuSUSE/openSUSE, RHEL, Gentoo, Arch,
fötr şapka.
Genel olarak güvenlik açığını engellemeyen belirli istismar yöntemlerine karşı koymaya yönelik öneriler arasında MPTCP desteğini devre dışı bırakmak ve çekirdek sysctl parametresi net.ipv4.tcp_migrate_req'i 0'a ayarlamak yer almaktadır:
sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0
Sistemde soket kullanan işlemlerin olup olmadığını belirlemek için
MPTCP için şu komutları kullanabilirsiniz:
ip mptcp endpoint show
ip mptcp limitlerini göster
Go programlarında MPTCP desteğini devre dışı bırakmak için, "GODEBUG=multipathtcp=0" ortam değişkenini ayarlayarak "multipathtcp=0" bayrağını kullanabilirsiniz. Derleme zamanında MPTCP desteğini devre dışı bırakmak için, go.mod dosyasına "godebug multipathtcp=0" satırını ekleyin. Uygulama kodunuzda, net.Dialer.SetMultipathTCP ve net.ListenConfig.SetMultipathTCP fonksiyonlarını kullanarak MPTCP'yi devre dışı bırakabilirsiniz.
Tartışılan soruna ek olarak, Anthropic ayrıca çekirdekte yerel olarak istismar edilebilen bir dizi güvenlik açığı da duyurdu. LinuxSisteme root erişimi sağlayan ve izole edilmiş konteynerlerden kaçmaya olanak tanıyan OpenBSD ve FreeBSD'deki güvenlik açıkları; özel olarak tasarlanmış web sayfaları açıldığında sistemde kod yürütülmesine yol açan Chrome ve Safari'deki güvenlik açıkları; çekirdekteki bir güvenlik açığı. WindowsBu durum çökmeye yol açtı; platform güvenlik açığı AndroidBu yöntem, ekran kilidini atlamanıza ve cihazın kilidini açmadan kişisel bilgilere ve fotoğraflara erişmenize olanak tanır (saldırı Google Pixel 9 akıllı telefonda gösterilmiştir).
Ek:
- Nginx'te, dinleme yapan bir ağ soketi için IPPROTO_MPTCP seçeneğini etkinleştirme özelliği 1.29.7 sürümünden beri mevcuttur, ancak varsayılan olarak kullanılmamaktadır.
- Lighttpd'de MPTCP'yi etkinleştirme seçeneği 1.4.76 sürümünden itibaren mevcuttur.
- Apache httpd'de MPTCP desteğini sağlayan yamalar, 2024 yılında Apache httpd 2.5-HEAD dalına eklendi.
- Systemd'de, soket üzerinden etkinleştirildiğinde MPTCP'nin etkinleştirilmesine yönelik destek, 257. sürümde eklendi.
- Apache Traffic Server'da MPTCP'yi etkinleştirme seçeneği 9.2.4 sürümünden itibaren desteklenmektedir.
- HAProxy'de 3.1.0 sürümünden itibaren "mptcp{,4,6}@" seçeneği mevcuttur. ".
- Traefik'te, IPPROTO_MPTCP bayrağının ayarlanması 2.11.26, 3.4.2 ve v3.5.0-rc1 sürümlerinden itibaren varsayılan olarak etkinleştirilmiştir.
- Valkey DBMS'de, 9.0.0 sürümünden itibaren "--mptcp" seçeneği ve "mptcp yes" ile "repl-mptcp yes" ayarları mevcuttur.
Kaynak: opennet.ru
