В TCP-стеке ядра Linux выявлена уязвимость, приводящая к отказу в обслуживании

В TCP-стеке ядра Linux выявлена опасная уязвимость (CVE-2018-5390), которая позволяет удалённо вызвать отказ в обслуживании из-за истечения доступных ресурсов CPU. Для совершения атаки достаточно отправить поток специальным образом оформленных пакетов на любой открытый TCP-порт. Атака может быть совершена только с реального IP-адреса (спуфинг невозможен так как требуется установка TCP-соединения).

Суть проблемы в том, что при определённых параметрах сегментирования ядро при поступлении каждого пакета вызывает достаточно ресурсоёмкие функции tcp_collapse_ofo_queue() и tcp_prune_ofo_queue(). Затрачиваемых при выполнении данных вызовов ресурсов достаточно, чтобы полностью загрузить процессор при обработке потока с незначительной интенсивностью. Например, для появления существенных задержек в обработке запросов системой для каждого ядра CPU достаточно потока интенсивностью всего 2 тысячи пакетов в секунду.


   141 root      20   0       0      0      0 R  97.3  0.0   1:16.33 ksoftirqd/26
   151 root      20   0       0      0      0 R  97.3  0.0   1:16.68 ksoftirqd/28
   136 root      20   0       0      0      0 R  97.0  0.0   0:39.09 ksoftirqd/25
   161 root      20   0       0      0      0 R  97.0  0.0   1:16.48 ksoftirqd/30

Уязвимость проявляется на всех ядрах Linux, начиная с выпуска 4.9 (атака может быть проведена и против более старых ядер, но требует существенного более интенсивного потока пакетов). Проблема устранена в обновлении ядра 4.17.12. Обновления пакетов подготовлены для Debian, SUSE и Fedora, и ожидаются для Ubuntu и RHEL.

08/07/2018 00:17:59
0

комментарии (0)