ProHoster > Блог > Новини інтернету > Вразливість у ядрі Linux, що дозволяє викликати крах через відправлення UDP-пакету
Вразливість у ядрі Linux, що дозволяє викликати крах через відправлення UDP-пакету
У ядрі Linux виявлено вразливість (CVE-2019-11683), що дозволяє віддалено викликати відмову в обслуговуванні через відправлення спеціально оформлених UDP-пакетів (packet-of-death). Проблема викликана помилкою в обробнику udp_gro_receive_segment (net/ipv4/udp_offload.c) з реалізацією технології GRO (Generic Receive Оffload) і може призвести до пошкодження вмісту областей пам'яті ядра при обробці UDP-пакетів з нульовим заповненням.
Проблема зачіпає лише ядро 5.0, тому що підтримка GRO для UDP-сокетів була реалізована у листопаді минулого року і встигла потрапити лише до останнього стабільного випуску ядра. Технологія GRO дозволяє прискорити обробку великої кількості вхідних пакетів, завдяки агрегування декількох пакетів у великі блоки, що не вимагають окремої обробки кожного пакета.
Для TCP проблема не проявляється, тому що для даного протоколу не підтримується агрегування пакетів без payload.
Проблема була знайдена в результаті використання створених Google автоматизованої системи fuzzing-тестування syzbot та аналізатора KASAN (KernelAddressSanitizer), націленого на виявлення помилок при роботі з пам'яттю та фактів некоректного звернення до пам'яті, таких як звернення до звільнених областей пам'яті та розміщення коду в області пам'яті, не призначені для подібних маніпуляцій.