В ядре Linux уязвимость (), позволяющая удалённо вызвать отказ в обслуживании через отправку специально оформленных UDP-пакетов (packet-of-death). Проблема вызвана ошибкой в обработчике udp_gro_receive_segment (net/ipv4/udp_offload.c) с реализацией технологии GRO (Generic Receive Оffload) и может привести к повреждению содержимого областей памяти ядра при обработке UDP-пакетов с нулевым заполнением (пустой payload).
Проблема затрагивает только ядро , так как поддержка GRO для UDP-сокетов была в ноябре прошлого года и успела попасть только в последний стабильный выпуск ядра. Технология GRO позволяет ускорить обработку большого числа входящих пакетов, благодаря агрегированию нескольких пакетов в более крупные блоки, не требующие отдельной обработки каждого пакета.
Для TCP проблема не проявляется, так как для данного протокола не поддерживается агрегирование пакетов без payload.
Уязвимость пока исправлена только в виде , корректирующее обновление ещё не опубликовано (во вчерашнее обновление 5.0.11 исправление ). Из дистрибутивов ядро 5.0 успело войти в состав , , , и других непрерывно обновляемых дистрибутивов. , , и проблема не затрагивает.
Проблема была найдена в результате созданных компанией Google автоматизированной системы fuzzing-тестирования и анализатора (KernelAddressSanitizer), нацеленного на выявление ошибок при работе с памятью и фактов некорректного обращения к памяти, таких как обращения к освобождённым областям памяти и помещение кода в области памяти, не предназначенные для подобных манипуляций.
Источник: opennet.ru
