Уразлівасці ў 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, Мяккая фетравы капялюш и Arch Linux.

    Крыніца: opennet.ru

  • Дадаць каментар