Уразливості в TCP-стеках Linux і FreeBSD, що призводять до віддаленої відмови в обслуговуванні

Компанія Netflix виявила кілька критичних вразливостей у TCP-стеках Linux та FreeBSD, які дозволяють віддалено ініціювати крах ядра або викликати надмірне споживання ресурсів при обробці спеціально оформлених TCP-пакетів (packet-of-death). Проблеми викликані помилками в обробниках максимального розміру блоку даних у 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) або заблокувати з'єднання з низьким 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 та забиття каналу зв'язку. Як обхідний метод захисту рекомендовано заблокувати з'єднання з низьким MSS

    У ядрі Linux проблеми усунуті у випусках 4.4.182, 4.9.182, 4.14.127, 4.19.52 та 5.1.11. Виправлення для FreeBSD доступне у вигляді патча. У дистрибутивах оновлення пакетів з ядром вже випущено для Debian, RHEL, SUSE/openSUSE. Виправлення в процесі підготовки Ubuntu, Fedora и Arch Linux.

    Джерело: opennet.ru

  • Додати коментар або відгук