nemrég kiadta a hírt a Linux TCP-veremek több kritikus sebezhetőségének azonosításáról és a FreeBSD azt lehetővé teszi a támadó számára, hogy távolról kezdeményezze a kernel meghibásodását vagy túlzott erőforrás-felhasználást okozhat speciálisan kialakított TCP-csomagok (halálcsomag) feldolgozásával.
A problémákat az adatblokk maximális méretét kezelők hibái okozzák a TCP csomagban (MSS, Maximum segment size) és a szelektív kapcsolatfelismerés mechanizmusában (SACK, Selective TCP felismerés).
Mi a szelektív felismerés?
Szelektív TCP-felismerés (SACK) ez egy olyan mechanizmus, ahol az adatvevő tájékoztathatja a küldőt az összes sikeresen elfogadott szegmensről.
ezt Lehetővé teszi a feladónak, hogy továbbítsa a hiányzó adatfolyam-szakaszokat „jól ismert” készletéből. Ha a TCP SACK ki van kapcsolva, akkor egy teljes sorozat újraküldéséhez sokkal nagyobb számú továbbításra van szükség.
A Linux kernelben a problémákat a 4.4.182, 4.9.182, 4.14.127, 4.19.52 és 5.1.11 verziókban javítják. A FreeBSD megoldása javításként érhető el.
A rendszermag-csomag frissítései megjelennek a Debian, az RHEL, a SUSE / openSUSE, az ALT, az Ubuntu, a Fedora és az Arch Linux számára.
CVE-2019-11477 (SACK Panic)
A probléma 2.6.29-től kezdve a Linux kernjeiben nyilvánul meg, és lehetővé teszi a kernel összeomlását (pánik), amikor egy SACK csomagot küld a vezérlőben egy egész szám túlcsordulás miatt.
Támadáshoz elegendő az MSS értékét 48 bájtra állítani egy TCP-kapcsolathoz és elrendezett SACK csomagok sorozatát küldjük egy bizonyos módon.
A probléma lényege, hogy a szerkezet tcp_skb_cb (Socket puffer) 17 töredék tárolására készült ("Határozzon meg MAX_SKB_FRAGS (65536 / PAGE_SIZE + 1) => 17" értéket).
A csomagküldés során a küldési sorba kerül, és a tcp_skb_cb tárolja a csomag részleteit, például a sorszámot, a zászlókat, valamint a "tcp_gso_segs" és "tcp_gso_size" mezőket, amelyek küldésre szolgálnak. Szegmentálási információk a vezérlőhöz (TSO, Segment Segment Download) a szegmensek feldolgozásához a hálózati kártya oldalán.
Ha a SACK engedélyezve van, és az illesztőprogram támogatja a TSO-t, akkor a darabok mentésre kerülnek, amikor csomagvesztés vagy szelektív csomag-továbbadás szükséges.
A védelem egyik megoldásaként letilthatja a SACK feldolgozását, vagy blokkolhatja a kapcsolatokat egy kis MSS-sel (csak akkor működik, ha a sysctl net.ipv4.tcp_mtu_probing értéket 0-ra állítja, és alacsony MSS esetén megszakíthat néhány normálist).
CVE-2019-11478 (SACK lassúság)
Ez a kudarc megszakítja a SACK mechanizmust (ha Linux kernelt használ 4.15-ben) vagy túlzott erőforrás-felhasználás.
A probléma akkor jelentkezik, amikor speciálisan kialakított SACK csomagokat dolgoznak fel, amelyek felhasználhatók az újraküldési sor (TCP újraküldés) töredezésére. A védelmi megoldások hasonlóak a korábbi sérülékenységekhez
CVE-2019-5599 (SACK lassúság)
Lehetővé teszi a SACK szekvencia feldolgozása során elküldött csomagok térképének töredezettségét egyetlen TCP-kapcsolaton belül, és erőforrás-igényes listakeresési műveletet futtat.
A probléma a FreeBSD 12-ben nyilvánul meg a RACK csomagvesztés detektálási mechanizmussal. Megkerülő megoldásként letilthatja a RACK modult (alapértelmezés szerint nincs betöltve, a sysctl net.inet.tcp.functions_default = freebsd megadásával tiltva)
CVE-2019 11479-
A hiba lehetővé teszi a támadó számára, hogy a Linux kernel több TCP szegmensre osztja a válaszokat, mindegyik csak 8 bájt adatot tartalmaz, ami jelentős forgalomnövekedéshez, megnövekedett CPU-terheléshez és eldugult kommunikációs csatornához vezethet.
Ezenkívül további forrásokat emészt fel (processzor teljesítménye és hálózati kártya).
Ez a támadás folyamatos erőfeszítéseket igényel a támadótól, és a találatok nem sokkal azután fejeződnek be, hogy a támadó abbahagyja a forgalom küldését.
Amíg ez a támadás folyamatban van, a rendszer csökkentett kapacitással fog futni, ami egyes felhasználók számára megtagadja a szolgáltatást.
A távoli felhasználó kiválthatja ezt a problémát a maximális szegmensméret beállításával (MSS) egy TCP-kapcsolaton a legalacsonyabb határon (48 bájt), és különlegesen kialakított SACK csomagok sorozatát küldi.
Megkerülő megoldásként ajánlott blokkolni az alacsony MSS-sel rendelkező kapcsolatokat.