UDP ಪ್ಯಾಕೆಟ್ ಕಳುಹಿಸುವ ಮೂಲಕ ಕ್ರ್ಯಾಶ್‌ಗೆ ಕಾರಣವಾಗುವ Linux ಕರ್ನಲ್‌ನಲ್ಲಿನ ದುರ್ಬಲತೆ

В ядре Linux ಗುರುತಿಸಲಾಗಿದೆ ದುರ್ಬಲತೆ (CVE-2019-11683), позволяющая удалённо вызвать отказ в обслуживании через отправку специально оформленных UDP-пакетов (packet-of-death). Проблема вызвана ошибкой в обработчике udp_gro_receive_segment (net/ipv4/udp_offload.c) с реализацией технологии GRO (Generic Receive Оffload) и может привести к повреждению содержимого областей памяти ядра при обработке UDP-пакетов с нулевым заполнением (пустой payload).

Проблема затрагивает только ядро 5.0, так как поддержка GRO для UDP-сокетов была ಅಳವಡಿಸಲಾಗಿದೆ в ноябре прошлого года и успела попасть только в последний стабильный выпуск ядра. Технология GRO позволяет ускорить обработку большого числа входящих пакетов, благодаря агрегированию нескольких пакетов в более крупные блоки, не требующие отдельной обработки каждого пакета.
Для TCP проблема не проявляется, так как для данного протокола не поддерживается агрегирование пакетов без payload.

Уязвимость пока исправлена только в виде ತೇಪೆ, корректирующее обновление ещё не опубликовано (во вчерашнее обновление 5.0.11 исправление не вошло). Из дистрибутивов ядро 5.0 успело войти в состав ಫೆಡೋರಾ 30, ಉಬುಂಟು 19.04, ಆರ್ಚ್ ಲಿನಕ್ಸ್, ಜೆಂಟೂ и других непрерывно обновляемых дистрибутивов. ಡೆಬಿಯನ್, Ubuntu 18.10 и младше, RHEL/CentOS и SUSE/openSUSE проблема не затрагивает.

Проблема была найдена в результате ಬಳಕೆ созданных компанией Google автоматизированной системы fuzzing-тестирования syzbot и анализатора KASAN (KernelAddressSanitizer), нацеленного на выявление ошибок при работе с памятью и фактов некорректного обращения к памяти, таких как обращения к освобождённым областям памяти и помещение кода в области памяти, не предназначенные для подобных манипуляций.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ