LINUX.ORG.RU
ФорумTalks

Уязвимость в ядре Linux, позволяющая вызвать крах через отправку UDP-пакета

 , ,


0

1

В ядре 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 успело войти в состав Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo и других непрерывно обновляемых дистрибутивов. Debian, Ubuntu 18.10 и младше, RHEL/CentOS и SUSE/openSUSE проблема не затрагивает.

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

Ответ на: комментарий от vasya_pupkin

Я никогда не видел живьём запроса клиентов к dns серверу через tcp, все только по udp..

Узри жеж:

$ grep cloudflare /var/unbound/etc/unbound.conf 
	forward-addr: 1.1.1.1#cloudflare-dns.com

Правда, это DNS-Over-TLS. И это резолвер внутри моей сети, а все остальные все равно к нему через UDP ходят. Но тем не менее :)

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

Я все ещё жду лекцию про то, почему UDP ОПАСНЫЙ ПРОТОКОЛ. Вот серьезно, я прям даже очень хочу узнать из первых рук такого превосходного специалиста, почему UDP — свят, свят.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от vasya_pupkin

как настроишь сервер, так и будет. по дефолту длинные ответы (больше 512 байт, хотя это настраивается) всегда отправляются через TCP. TCP сессию сложнее подделать. поэтому надёжнее использовать TCP. после того, как начался бардак со всякими «запретами» (я видела даже попытки подмены адресов гугла) я перешла на альтернативные DNS службы, с шифрованием.

Iron_Bug ★★★★★
()
Ответ на: комментарий от vasya_pupkin

да, и поэтому UDP - знатный источник флуда в сети. лёгкие мелкие пакеты, которые не требуют особых затрат при генерации. в этом смысле QUIC мне тоже не нравится. теоретически он хорош, но на практике он может стать миной для северов.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

как настроишь сервер, так и будет. по дефолту длинные ответы (больше 512 байт, хотя это настраивается) всегда отправляются через TCP.

Те ты хочешь сказать, что на запрос клиента по UDP сервер отвечает по TCP ? =)

TCP сессию сложнее подделать. поэтому надёжнее использовать TCP

В данном случае сессию не нужно подделывать, достаточно просто завернуть трафик на свой днс сервер.

vasya_pupkin ★★★★★
() автор топика
Последнее исправление: vasya_pupkin (всего исправлений: 1)
Ответ на: комментарий от vasya_pupkin

он ему пошлёт кусок данных, который влезет в 512 байт, и взведёт флаг TC, чтобы клиент перезапросил данные через TCP.

есть ещё EDNS0, там можно попробовать слать пакеты чуть жирнее, но с ним могут быть проблемы на сетевом уровне.

все современные крупные сервера имеют куда больше данных, чем 512 байт.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от vasya_pupkin

Она скорее всего про то, что источник udp пакета может быть фейковым.

И чо? Один хрен у тебя вся аутентификация поверх идет.

kirk_johnson ★☆
()
Ответ на: комментарий от Iron_Bug

да, и поэтому UDP - знатный источник флуда в сети. лёгкие мелкие пакеты, которые не требуют особых затрат при генерации. в этом смысле QUIC мне тоже не нравится. теоретически он хорош, но на практике он может стать миной для северов.

HTTP сервера досят и без UDP.

kirk_johnson ★☆
()
Ответ на: комментарий от kirk_johnson

http серверов в наше время исключительно мало. не по причине ддоса, а по причине вопроов безопасности.

есть множество разных вариантов атак. я как раз занимаюсь изучением этих вариантов. если задаться целью, то заддосить можно почти что угодно. вопрос лишь в затратах. но админы стараются превентивно уменьшить потенциальный гемор и прикрывают протоколы, которые несут проблемы. это простая логика любого нормального ленивого админа.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

http серверов в наше время исключительно мало

Поэтому девяносто с чем-то процентов трафика в сети — http. И почти все мессенджеры работают через http. И стриминг видео тоже через http. Поэтому их исключительно мало. Господи, ты же вроде работаешь в конторе по предотвращению ддоса, как ты умудряешься такой бред нести?

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 3)
Ответ на: комментарий от t184256

Не триггерись ты так, что взять с поттерингофоба.

Я тоже поттерингофоб, но я вроде такой чуши не пишу.

kirk_johnson ★☆
()
Ответ на: комментарий от kirk_johnson

о, медведи и белки! стриминг для бесплатных нищебродов - может, и есть такой, который прёт открыто через http. только вот никому он нафиг не нужен. а тот, за который денежку хотят поиметь, тот через https, однако, гонят. даже сраный ютуб через https давно уже. вот уж глобальная помойка - поболее любого другого хранилища видео. я не знаю, где ты там нашёл «девяносто с чем-то процентов» халявы без всякой защиты на древних протоколах.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

http протокол древнее https протокола, потому, что https v2, а http v1? ;)

system-root ★★★★★
()
Ответ на: комментарий от Iron_Bug

Ахахаха, что ты делаешь, прекрати. Давай, рассказывай, как дополнительные вычисления на сервере усложняют DDOS :)))

kirk_johnson ★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.