CVE-2026-31503
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: udp: hash2 istifadə edildikdə wildcard bind konflikt yoxlamasının düzəldilməsi udp_sock lokal ünvan və porta bağlandıqda (binding), UDP toqquşmaların aşkarlanması üçün iki heşdən (udptable->hash və udptable->hash2) istifadə edir. Mövcud kod hslot->count > 10 olduqda "hash2"-yə keçid edir. "hash2" lokal ünvan və lokal port üzrə açarlanır. "hash" yalnız lokal port üzrə açarlanır. Problem aşağıdakı bind ardıcıllığında (psevdokod) görünə bilər: 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" əvəzinə "hash" istifadə edildiyi üçün düzgün şəkildə -EADDRINUSE qaytarılır. * udp_lib_lport_inuse() konflikti aşkar edir. */ bind(fail_fd, "[::]:8888") /* Daha bir soket "[fd00::11]:8888" ünvanına bağlandıqdan sonra, * hslot->count 10-u keçir və bunun əvəzinə "hash2" istifadə olunur. */ bind(fd11, "[fd00::11]:8888") bind(fail_fd, "[::]:8888") /* gözlənilmədən uğurlu olur */ Eyni problem IPv4 wildcard ünvanı "0.0.0.0" və IPv4-map edilmiş wildcard ünvanı "::ffff:0.0.0.0" üçün də aktualdır. Məsələn, əgər "192.168.1.[1-11]:8888" ünvanlarına bağlanmış mövcud soketlər varsa, onda hslot->count > 10 olduqda "0.0.0.0:8888" və ya "[::ffff:0.0.0.0]:8888" bağlama prosesi zamanı konflikt nəzərdən qaçırıla bilər. TCP inet_csk_get_port() funksiyasında artıq inet_use_bhash2_on_bind() daxilində düzgün yoxlama mövcuddur. Bu funksiya inet_use_hash2_on_bind() olaraq adlandırıldı və udp.c tərəfindən bu düzəlişdə yenidən istifadə edilə bilməsi üçün inet_hashtables.h faylına köçürüldü.
Necə düzəltmək olar
- linux linux_kernel6.1.168, 6.6.131, 6.12.80, 6.18.21, 6.19.11 və ya daha yeni versiya
- 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
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.