Prohoster > Blog > tin tức mạng > Các lỗ hổng trong ngăn xếp TCP của Linux và FreeBSD dẫn đến việc từ chối dịch vụ từ xa
Các lỗ hổng trong ngăn xếp TCP của Linux và FreeBSD dẫn đến việc từ chối dịch vụ từ xa
Công ty Netflix tiết lộ несколько критических lỗ hổng в TCP-стеках Linux и FreeBSD, которые позволяют удалённо инициировать крах ядра или вызвать чрезмерное потребление ресурсов при обработке специально оформленных TCP-пакетов (packet-of-death). Проблемы gây ra bởi ошибками в обработчиках максимального размера блока данных в TCP-пакете (MSS, Maximum segment size) и механизма выборочного подтверждения соединений (SACK, TCP Selective Acknowledgement).
CVE-2019-11477 (SACK Panic) — проблема проявляется в ядрах Linux начиная с 2.6.29 и позволяет вызвать крах (panic) ядра через отправку серии SACK-пакетов из-за возникновения целочисленного переполнения в обработчике. Для атаки достаточно выставить для TCP-соедиения значение MSS в 48 байт (нижний лимит, устанавливает размер сегмента в 8 байт) и отправить последовательность определённым образом скомпонованных SACK-пакетов.
В качестве обходных путей защиты можно отключить обработку SACK (записать 0 в /proc/sys/net/ipv4/tcp_sack) или chặn соединения с низким MSS (работает только при выставлении sysctl net.ipv4.tcp_mtu_probing в 0 и может нарушить работу некоторых нормальных соединений с низким MSS);
CVE-2019-11478 (SACK Slowness) — приводит к нарушению работы механизма SACK (при использовании ядра Linux младше 4.15) или избыточному потреблению ресурсов. Проблема проявляется при обработке специально оформленных SACK-пакетов, которые можно использовать для фрагментирования очереди повторной передачи (TCP retransmission). Обходные пути защиты аналогичны предыдущей уязвимости;
CVE-2019-5599 (SACK Slowness) — позволяет вызвать фрагментацию карты отправленных пакетов при обработке специальной последовательности SACK в рамках одного TCP-соединения и вызвать выполнение ресурсоёмкой операции перебора списка. Проблема проявляется во FreeBSD 12 с механизмом определения потери пакетов RACK. В качестве обходной меры можно отключить модуль RACK;
CVE-2019-11479 — атакующий может вызвать в ядре Linux разделение ответов на несколько TCP-сегментов, каждый из которых включает только 8 байт данных, что может привести к существенному повышению трафика, увеличению нагрузки на CPU и забиванию канала связи. В качестве обходного метода защиты рекомендовано chặn соединения с низким MSS.
В ядре Linux проблемы устранены в выпусках 4.4.182, 4.9.182, 4.14.127, 4.19.52 и 5.1.11. Исправление для FreeBSD доступно в виде vá. В дистрибутивах обновления пакетов с ядром уже выпущено для Debian, RHEL, SUSE/openSUSE. Исправление в процессе подготовки в Ubuntu, Fedora и Arch Linux.