CVE-2026-31503
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: udp: hash2 kullanılırken joker karakter bağlama çakışma kontrolü düzeltildi Bir udp_sock yerel bir adrese ve porta bağlanırken, UDP çakışma algılaması için iki hash (udptable->hash ve udptable->hash2) kullanır. Mevcut kod, hslot->count > 10 olduğunda "hash2"ye geçer. "hash2", yerel adres ve yerel port ile anahtarlanır. "hash" ise yalnızca yerel port ile anahtarlanır. Sorun aşağıdaki bağlama dizisinde (psödo kod) gösterilebilir: bind(fd1, "[fd00::1]:8888") bind(fd2, "[fd00::2]:8888") bind(fd3, "[fd00::3]:8888") bind(fd4, "[fd00::4]:8888") bind(fd5, "[fd00::5]:8888") bind(fd6, "[fd00::6]:8888") bind(fd7, "[fd00::7]:8888") bind(fd8, "[fd00::8]:8888") bind(fd9, "[fd00::9]:8888") bind(fd10, "[fd00::10]:8888") /* "hash2" yerine "hash" kullanıldığı için doğru şekilde -EADDRINUSE döner. * udp_lib_lport_inuse() çakışmayı tespit eder. */ bind(fail_fd, "[::]:8888") /* Bir soket daha "[fd00::11]:8888" adresine bağlandıktan sonra, * hslot->count 10'u aşar ve bunun yerine "hash2" kullanılır. */ bind(fd11, "[fd00::11]:8888") bind(fail_fd, "[::]:8888") /* beklenmedik şekilde başarılı olur */ Aynı sorun IPv4 joker karakter adresi "0.0.0.0" ve IPv4-eşlenmiş joker karakter adresi "::ffff:0.0.0.0" için de geçerlidir. Örneğin, "192.168.1.[1-11]:8888" adreslerine bağlı mevcut soketler varsa, hslot->count > 10 olduğunda "0.0.0.0:8888" veya "[::ffff:0.0.0.0]:8888" bağlama işlemi de çakışmayı gözden kaçırabilir. TCP inet_csk_get_port() fonksiyonu zaten inet_use_bhash2_on_bind() içerisinde doğru kontrole sahiptir. Bu fonksiyon, udp.c'nin bu düzeltmede yeniden kullanabilmesi için inet_use_hash2_on_bind() olarak yeniden adlandırılmış ve inet_hashtables.h dosyasına taşınmıştır.
Nasıl düzeltilir
- linux linux_kernel6.1.168, 6.6.131, 6.12.80, 6.18.21, 6.19.11 ya da sonraki bir sürüm
- git.kernel.org/stable/c/0a360f7f73a06ac88f18917055fbcc79694252d7
- git.kernel.org/stable/c/18d84c45def3671d5c89fbdd5d4ab8a3217fe4b4
- git.kernel.org/stable/c/2297e38114316b26ae02f2d205c49b5511c5ed55
- git.kernel.org/stable/c/d6ace0dbcbb7fd285738bb87b42b71b01858c952
- git.kernel.org/stable/c/e537dd15d0d4ad989d56a1021290f0c674dd8b28
- git.kernel.org/stable/c/f1bed05a832ae79be5f7a105da56810eaa59a5f1
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 2.6.33.1 ≤ v < 6.1.168, 6.2 ≤ v < 6.6.131, 6.7 ≤ v < 6.12.80, 6.13 ≤ v < 6.18.21, 6.19 ≤ v < 6.19.11, 2.6.33, 7.0 | 6.1.168, 6.6.131, 6.12.80, 6.18.21, 6.19.11 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.