The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

03.05.2019 09:23

В ядре 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 и разработанного компанией Samsung анализатора KASAN (KernelAddressSanitizer), нацеленного на выявление ошибок при работе с памятью и фактов некорректного обращения к памяти, таких как обращения к освобождённым областям памяти и помещение кода в области памяти, не предназначенные для подобных манипуляций.

  1. Главная ссылка к новости (https://seclists.org/oss-sec/2...)
  2. OpenNews: Уязвимости в драйвере ozwpan, позволяющие удалённо вызвать крах ядра Linux
  3. OpenNews: В TCP-стеке Linux и FreeBSD выявлена уязвимость, приводящая к отказу в обслуживании
  4. OpenNews: Выявлен ещё один метод удалённой DoS-атаки на ядро Linux и FreeBSD
  5. OpenNews: В Android и старых ядрах Linux устранена уязвимость, эксплуатируемая через отправку UDP-пакетов
  6. OpenNews: Уязвимости в реализации сокетов AF_PACKET и UDP-стеке ядра Linux
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: kernel, ping
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (88) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:31, 03/05/2019 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +6 +/
     
     
  • 2.2, qywtfgsaqwzh (ok), 09:35, 03/05/2019 Скрыто модератором
  • +/
     

  • 1.3, Aknor (?), 09:37, 03/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вот, говорил батька Эндрюс на микроядре писать, - не послушали ...
     
     
  • 2.17, Аноним (17), 10:51, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Наш батька Ричард. И он, кстати, тоже хотел повести по пути микроядра.
     
     
  • 3.25, Aknor (?), 12:16, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вкликие люди - мыслят одинаково ...
     
     
  • 4.30, Аноним (30), 12:46, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Набери в поисковике "мысли сходятся", что бы проверить свою гипотезу. ;)
     
  • 3.28, Аноним (28), 12:40, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Он и повел. HURD - микроядро.
     
     
  • 4.105, Аноним (105), 12:05, 05/05/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И где ваш HURD теперь? Хотя Minix определённо взлетел, причём повыше винды с линуксом и бздями.
     
  • 2.27, Аноним (27), 12:31, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть же seL4 - микроядро, да ещё и формальную верификацию прошедшее...
     
     
  • 3.41, Аноним (41), 14:16, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > seL4

    и на 8000 строк его кода - 80.000 спецификации верификации

     
     
  • 4.50, Аноним (27), 16:11, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да, именно. И что ты этим хочешь сказать?
     
     
  • 5.62, Аноним (41), 18:59, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    то, что Линус и LF не осилят писать 100,000,000 (или миллиард) строк матана для верификации применимого в реальности микроядра
     
     
  • 6.64, Аноним84701 (ok), 20:01, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    100500 же Зачем для микроядра миллиард строк верификации микро, как бы, намека... текст свёрнут, показать
     
  • 2.39, Аноним (39), 14:10, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Тут всё просто. До первого сервис пака не ставить. А раз сервис пак к ядру ещё не разу не выходил ядро не нужно.
     

  • 1.4, FSA (??), 09:40, 03/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –14 +/
    Заголовок страшный, но суть - никто в здравом уме, кроме тестеров, сейчас не использует эти ядра на чём-то важном и даже домашнем компьютере. У меня Gentoo и версия ядра 4.19.
     
     
  • 2.48, аноннн (?), 15:22, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    с чего вы решили, если в состав дистрибутивов уже оно вошло?
    наверняка кто-то уже обновил десктоп/сервак
     
     
  • 3.68, Аноним (68), 20:35, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если у кого-то федорка или арчик на серваке, он ССЗБ.
     
     
  • 4.91, аноннн (?), 08:47, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • –6 +/
    наоборот, человек не ест говнолегаси ПО, которое уже старое после выхода дистрибутива
    точно так же в ядре и 4-й ветки можно найти уязвимость

    федорка на сервере вполне имеет место быть

    если чувак хочет стабильность, то он будет не линуксы на сервак нести, а фряху

     
  • 4.101, хотел спросить (?), 03:08, 05/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Но дома вполне... у меня Fedora 29, там 5.0.10 уже.
     
  • 3.100, FSA (??), 00:21, 05/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > с чего вы решили, если в состав дистрибутивов уже оно вошло?

    В Gentoo можно много чего свежего наставить, если настроить определённым образом. Вопрос только в том, зачем, если ты не тестер. Ubuntu у меня на малинке и на виртуалках в интернете. Там 4 ветка ядра. Пробовал другие дистрибутивы, там вообще всё древнее как го-но мамонта.

     
  • 2.49, Аноним (49), 16:04, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > никто в здравом уме, кроме тестеров, сейчас не использует эти ядра на чём-то важном и даже домашнем компьютере.

    А теперь внимательно читаем:
    > ядро 5.0 успело войти в состав Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo и других непрерывно обновляемых дистрибутивов.

     
     
  • 3.61, имя (?), 18:51, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В Gentoo ядро 5.0.x размаскировывать надо, обычные пользователи на него ещё не обновлялись.

    https://packages.gentoo.org/packages/sys-kernel/gentoo-sources

    А вот арчеводы страдают, факт.

     
     
  • 4.75, Kido Katsuragi (?), 01:11, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У арчеводов есть linux-lts

    kido@arch64 ~> uname -a
    Linux arch64 4.19.38-1-lts #1 SMP Thu May 2 16:01:37 CEST 2019 x86_64 GNU/Linux

     
  • 4.86, Аноним (86), 05:41, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    арчевод знал на что подписывался. а если не знал - то быстро узнает
     
     
  • 5.94, арчевед (?), 15:36, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    расскажи нам, комсомолец, что мы должны узнать. ведь ты, по всей видимости, знаешь больше нас всех вместе взятых.
     
  • 2.55, Сюзанна (?), 16:30, 03/05/2019 Скрыто модератором
  • –3 +/
     
     
  • 3.71, 0x0 (?), 22:41, 03/05/2019 Скрыто модератором
  • –1 +/
     
  • 2.65, Аноним (65), 20:06, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Все так и есть. У LTS убунты 4.15, у дебиана 4.9, а у шляпы вообще 3.x ветки ядро какое-то. Большинство как серверов, так и обычных админов локалхоста сидят именно на этих дистрах.
    С чем связана негативная реакция опеннетовцев даже не знаю...
     
     
  • 3.76, Gannet (ok), 03:12, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > У LTS убунты 4.15

    4.18

     

  • 1.5, Аноним (5), 09:40, 03/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Linux 5.0.2-gentoo #2 SMP PREEMPT Fri Mar 15 11:17:57 EET 2019 x86_64 Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz GenuineIntel GNU/Linux

    patching file net/ipv4/udp_offload.c
    Hunk #1 FAILED at 352.
    Hunk #2 FAILED at 359.
    Hunk #3 FAILED at 377.
    3 out of 3 hunks FAILED -- saving rejects to file net/ipv4/udp_offload.c.rej

    WTF?

     
     
  • 2.14, Аноним (14), 10:39, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Предложенный патч для 5.1 ветки. В оригинальном виде даже на 5.0.11 не ложится, сигнатура у udp_gro_receive_segment() отличается. Нужен пропатченный патч.
     
     
  • 3.35, пропатченный патч (?), 13:28, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Чево случилось то
     
     
  • 4.44, Michael Shigorin (ok), 15:11, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лежачего патча напильниками не трогают ;-]
     
  • 4.56, вопрос (?), 16:43, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    как пропатчить ядро на gentoo?
     
     
  • 5.66, ответ (?), 20:15, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    /etc/portage/patches ?
     
  • 5.72, 0x0 (?), 23:05, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Скорее всего, где-то в субботу (возможно в понедельник) выйдет 5.0.12, потому что в воскресном 5.1.0 наверняка всё будет уже пропатчено.
     
     
  • 6.73, 0x0 (?), 23:14, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    *сомневаюсь что к этому времени кто-нибудь успеет настолько глубоко изучить и поставить на вооружение этот баг, чтобы вызвать  вселенские сбои :)
     

  • 1.6, Аноним (6), 09:57, 03/05/2019 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +12 +/
     
     
  • 2.11, Vasyan (?), 10:37, 03/05/2019 Скрыто модератором
  • +8 +/
     
     
  • 3.29, Аноним (29), 12:46, 03/05/2019 Скрыто модератором
  • +9 +/
     
     
  • 4.58, bob (??), 17:15, 03/05/2019 Скрыто модератором
  • +/
     
     
  • 5.60, Аноним (60), 18:30, 03/05/2019 Скрыто модератором
  • –2 +/
     
     
  • 6.69, Аноним (68), 20:36, 03/05/2019 Скрыто модератором
  • +5 +/
     
     
  • 7.95, БАН (?), 15:51, 04/05/2019 Скрыто модератором
  • –1 +/
     
  • 7.96, Аноним (96), 16:04, 04/05/2019 Скрыто модератором
  • –1 +/
     
  • 2.15, Аноним (15), 10:48, 03/05/2019 Скрыто модератором
  • +1 +/
     
     
  • 3.33, iCat (ok), 13:04, 03/05/2019 Скрыто модератором
  • +13 +/
     
     
  • 4.52, rshadow (ok), 16:15, 03/05/2019 Скрыто модератором
  • +4 +/
     
     
  • 5.82, Алене (?), 03:35, 04/05/2019 Скрыто модератором
  • +2 +/
     
     
  • 6.97, Старик (?), 22:01, 04/05/2019 Скрыто модератором
  • +2 +/
     
  • 2.19, vn971 (ok), 11:03, 03/05/2019 Скрыто модератором
  • +/
     
     
  • 3.20, Crazy Alex (ok), 11:06, 03/05/2019 Скрыто модератором
  • +8 +/
     
  • 3.45, Michael Shigorin (ok), 15:12, 03/05/2019 Скрыто модератором
  • –3 +/
     
  • 3.87, Аноним (86), 05:42, 04/05/2019 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (16)

  • 1.7, Аноним (7), 09:58, 03/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    На Ubuntu 19.04 ядро 5.0 же. Почему пишут, что Ubuntu не затронуло?
     
     
  • 2.16, Аноним (16), 10:48, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что LTS ветку не затронуло, а остальные как бы и не стоит даже рассматривать
     
  • 2.74, Ключевский (?), 23:44, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что non-LTS релизы не предназначены для повседневного использования, а только для тестирования нового ПО и новых фич. Если ты сидишь на ветке для разработчиков, то ты понимаешь что ты делаешь.
     
     
  • 3.77, Gannet (ok), 03:21, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вообще-то LTS по сути придуман для продакшена, а не ветка для разработчиков или не для разработчиков. Я вот не разработчик и как-то не рыдаю крокодильими слезами от того, что в 5.0 этот баг нашли, а у меня *buntu 19.04. Не LTS-релизы подходят не только разработчикам, но и опытным домашним пользователям или, как вариант, если существует какой-то принципиальный баг в LTS, не позволяющий работать какому-то сервису как надо в том же продакшене - вариант поставить не-LTS-релиз вполне себе логичен, как некая крайняя мера.
     
     
  • 4.83, Ключевский (?), 04:01, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > в том же продакшене - вариант поставить не-LTS-релиз вполне себе логичен,
    > как некая крайняя мера.

    Нет и никогда. За установку в продакшен non-LTS сразу показываем на дверь, за саму идею. Есть предназначенные для использования LTS'ы и есть non-LTS для тестов и «поиграться». У меня есть виртуалка с non-LTS, потому что я тестирую и пишу баг-репорты, а на десктопе у меня LTS, у обоих братьев LTS(один из них ITшник, а второй — чайник со свистком), у отца старый LTS(16.04), так как железо старовато и не хочу нового накатывать, видать при окончании поддержки буду его все же уговаривать принять в подарок новый ноутбук, у мамы до самой ее смерти был LTS, на сотне моих серверов LTS, потому что LTS ставят там, где нужно, что бы все работало и работало стабильно, а non-LTS ставят либо мамкины крякеры, либо те кто готовы тестировать и писать баг-репорты

     
     
  • 5.102, Gannet (ok), 03:16, 05/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет и никогда.

    Н-да? А если фикс бага не бекпортирован в LTS из не-LTS? И фикс этот затрагивает определённый функционал, работа которого принципиальна... (?)

     

  • 1.10, Аноним (10), 10:25, 03/05/2019 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +11 +/
     
     
  • 2.12, Аноним (12), 10:39, 03/05/2019 Скрыто модератором
  • –1 +/
     
  • 2.36, Аноним (68), 13:51, 03/05/2019 Скрыто модератором
  • –2 +/
     
  • 2.37, 123 (??), 14:00, 03/05/2019 Скрыто модератором
  • –4 +/
     
     
  • 3.51, Аноним (51), 16:15, 03/05/2019 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (4)

  • 1.13, Аноним (13), 10:39, 03/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Проблема затрагивает только ядро 5.0

    фуух.... пронесло

     
     
  • 2.78, Gannet (ok), 03:22, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Съел что-то не то?
     
     
  • 3.98, Старик (?), 22:04, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я спортсмен
     

  • 1.21, Esus (?), 11:49, 03/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Если бы на Rust переписали таких банальных уязвимостей небыло бы и близко.
     
     
  • 2.23, Аноним (23), 12:01, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    rust на было появляться лет 29 назад.
    Собственно никто не мешает написать свое ядро на rust без банальных уязвимостей или доделать redox os
     
  • 2.26, Аноним (26), 12:29, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Голословное утверждение, в rust есть unsafe.

    Rust cannot prevent all kinds of software problems. Buggy code can and will be written in Rust.

     
  • 2.79, Gannet (ok), 03:24, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лучше на GO.
     
     
  • 3.93, имя (?), 10:49, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Лучше на GO.

    Чтобы вместо 12309 были лаги графики и сети, вызванные всеядерной сборкой мусора?

     
  • 2.85, Аноним (85), 05:09, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Перепиши.
     
  • 2.104, JL2001 (ok), 11:05, 05/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Если бы на Rust переписали таких банальных уязвимостей небыло бы и близко.

    я бы с удовольствием посмотрел на бенчмарки ядра на растений и линукса
    http://www.opennet.ru/opennews/art.shtml?num=50387

     

  • 1.22, Аноним (22), 11:51, 03/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Kasan разработал Samsung, а не Google.
     
  • 1.57, держу в курсе (?), 17:14, 03/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    меня называли слоупоком за что что сижу на 4.4. WHO IS LAUGHTING NOW?
     
     
  • 2.59, Аноним (59), 18:20, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Будто это в 4.5 вылезло.. /0
     
  • 2.81, Gannet (ok), 03:25, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Таки слоупок.
     

  • 1.67, Аноним (67), 20:26, 03/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    а можно огласить весь список дист с этим ядром пожалуйста
     
     
  • 2.70, Аноне (?), 20:42, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В фетровой 29 5.0.10
     
  • 2.84, Ключевский (?), 04:03, 04/05/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а можно огласить весь список дист с этим ядром пожалуйста

    Fedora 30, то есть тестинг для RH.
    Ubuntu 19.04, то есть тестовый для подготовки LTSов
    И всякие рачи и генту.
    В продакшен-реди дистрах 5.0 нет и явно не будет.

     
     
  • 3.99, FSA (??), 00:18, 05/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > генту.

    Ну это надо разрешать ставить что-то свежее, чем обычно ставится, а ставится 4.19 сейчас. Если это делаешь и выставляешь в интернет, ССЗБ.

     

  • 1.92, Аноним (92), 10:20, 04/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Я правильно понимаю, что ошибка не приведёт к полному краху? Повреждение памяти ядра относится к виртуальной памяти? То есть проблему можно будет решить просто перезагрузкой ПК в случае с домашним использованием? И какая вообще вероятность получить такой пакет прямо в систему через NAT (в случае использования домашнего роутера). Реагирует ли он на пакеты с нулевым заполнением каким-то образом?
     
     
  • 2.103, zanswer CCNA RS and S (?), 07:37, 05/05/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отсутствие в UDP datagram Data PDU, с точки зрения NAT вообще не является проблемой, кроме возможно случаев когда используется Application Layer Gateway для конкретных протоколов.

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

     
     
  • 3.106, Аноним (106), 13:40, 05/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за ответ.
     

  • 1.107, x (?), 20:24, 05/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >  Для включения GRO для сокетов UDP предложена новая опция (sockopt) UDP_GRO

    Так софта еще нет с этим GRO, если только у гугля.
    Думаю гугл эту опцию для QUIC / HTTP3 запилил в ядро, а то оно у них медленнее TCP ползало.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру