В ядре Linux устранена следующая уязвимость: udp: Исправить проверку конфликта wildcard при использовании хэш2 Привязывая udp_sock к локаль…
В ядре Linux устранена следующая уязвимость: udp: Исправить проверку конфликта wildcard при использовании хэш2 Привязывая udp_sock к локальному адресу и порту, UDP использует два хэша (съемный->хэш и съемный->хэш) для столкновения Обнаружение. Текущий код переключается на "hash2" когда Хслот->считать > 10. "hash2" осуществляется по локальному адресу и местному порту. «Хэш» подключается только местным портом. Выпуск можно показать в следующей последовательности связывания (псевдокод): 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") /* Правильно возвращать -EAДДРИНУЗ, потому что используется "хэш" * вместо "hash2". udp_lib_lport_inuse() обнаруживает * Конфликт. */ bind(fil_fd, "[::]:8888") /* После еще одной розетки связывается с "[fd00::11]:8888", * hslot->count превышает 10 и вместо него используется «hash2». */ bind(fd11, "[fd00::11]:8888") bind(fil_fd, "[::]:8888") /* неожиданно преуспевает*/ Тот же вопрос касается адреса подстановочного знака IPv4 "0.0.0.0". и IPv4-капированный адрес подстановочного знака "::ffff:0.0.0.0.0.0". Для Пример, если существуют гнезда, связанные с "192.168.1.[1-11]:8888", затем связывающий "0.0.0.0:0888" или "[::ffff:0.0.0.0]:8888" также может пропустить конфликт, когда Хслот->считать > 10. TCP inet_csk_get_port() уже имеет правильный заезд inet_use_bhash2_on_bind(). Переименовать его в inet_use_hash2_on_bind() и переместить его на inet_hashtables.h udp.c может повторно использовать его в этом исправлении.
| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux_kernel | * | Отслеживается |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-un | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается | |
| kernel-headers-modules-pine | Отслеживается | |
| kernel-headers-modules-pine | Отслеживается |