Tre sårbarheter hittades i Linux TCP-stackar som ledde till fjärrnekt av tjänst

Linux-krasch

Nyligen släppte nyheten om identifieringen av flera kritiska sårbarheter i Linux TCP-stackar och FreeBSD som tillåter en angripare att på distans initiera ett kärnfel eller orsaka överdriven resursförbrukning vid bearbetning av specialgjorda TCP-paket (dödspaket).

Problemen orsakas av buggar i hanterarna av maximal datablockstorlek. i TCP-paketet (MSS, Maximum Segment Size) och mekanismen för selektiv anslutningsbekräftelse (SACK, Selective TCP Acknowledgement).

Vad är ett selektivt erkännande?

Selektiv TCP-bekräftelse (SACK) Det är en mekanism där datamottagaren kan informera avsändaren om alla segment som har godkänts.

detta tillåter avsändaren att återsända saknade segment av strömmen av dess "välkända" uppsättning. När TCP SACK är inaktiverat krävs en mycket större uppsättning omsändningar för att återsända en hel ström.

I Linux-kärnan är problemen åtgärdade i versionerna 4.4.182, 4.9.182, 4.14.127, 4.19.52 och 5.1.11. Fixeringen för FreeBSD är tillgänglig som en patch.

Kärnpaketuppdateringar släpps för Debian, RHEL, SUSE/openSUSE, ALT, Ubuntu, Fedora och Arch Linux.

CVE-2019-11477 (SACK Panic)

Problemet manifesterar sig i Linux-kärnor från och med 2.6.29 och låter dig orsaka en kärnkrasch (panik) när en serie SACK-paket skickas på grund av ett heltalsspill som inträffar i styrenheten.

För en attack räcker det att ställa in MSS-värdet till 48 byte för en TCP-anslutning och skicka en sekvens av arrangerade SACK-paket på ett visst sätt.

Kärnan i problemet är att strukturen tcp_skb_cb (Socket Buffer) är utformad för att lagra 17 fragment ("definiera MAX_SKB_FRAGS(65536 / PAGE_SIZE + 1) => 17").

I processen att skicka ett paket placeras det i sändningskön och tcp_skb_cb lagrar detaljer om paketet, såsom sekvensnummer, flaggor, samt fälten "tcp_gso_segs" och "tcp_gso_size", som används för att skicka segmentering information till föraren (TSO, Segment Segment Download) för att bearbeta segment på nätverkskortsidan.

Fragment sparas när paketförlust eller behov av selektiv paketomsändning inträffar, om SACK är aktiverat och TSO stöds av föraren.

Som en lösning för skydd kan du inaktivera SACK-bearbetning eller blockera anslutningar med liten MSS (fungerar bara när du ställer in sysctl net.ipv4.tcp_mtu_probing till 0 och kan bryta en viss normal med låg MSS).

CVE-2019-11478 (SACK Slowness)

Detta misslyckande orsakar ett avbrott i SACK-mekanismen (när du använder Linux-kärnan på 4.15) eller överdriven resursförbrukning.

Problemet visar sig vid bearbetning av specialgjorda SACK-paket som kan användas för att fragmentera återöverföringskön (TCP-återöverföring). Lösningarna för skyddet liknar de tidigare sårbarheterna

CVE-2019-5599 (SACK Slowness)

Tillåter att orsaka fragmentering av kartan över paket som skickas vid bearbetning av en SACK-sekvens inom en enda TCP-anslutning och orsaka att en resurskrävande listuppslagningsoperation utförs.

Problemet visar sig i FreeBSD 12 med RACK-mekanismen för paketförlustdetektering. Som en lösning kan du inaktivera RACK-modulen (den är inte laddad som standard, den är inaktiverad genom att ange sysctl net.inet.tcp.functions_default = freebsd)

CVE-2019-11479

Felet tillåter en angripare att få Linux-kärnan att dela upp svar i flera TCP-segment, var och en innehåller endast 8 byte data, vilket kan leda till en betydande ökning av trafiken, en ökning av CPU-belastningen och en igensatt kommunikationskanal.

Dessutom förbrukar det ytterligare resurser (processorns och nätverkskortets processorkraft).

Denna attack kräver kontinuerliga ansträngningar från angriparens sida och träffarna kommer att sluta kort efter att angriparen slutat skicka trafik.

Medan denna attack pågår kommer systemet att köras med reducerad kapacitet, vilket resulterar i ett överbelastningsskydd för vissa användare.

En fjärranvändare kan utlösa detta problem genom att ställa in den maximala segmentstorleken (MSS) för en TCP-anslutning vid sin lägsta gräns (48 byte) och skickar en sekvens av specialgjorda SACK-paket.

Som en lösning rekommenderas det att blockera anslutningar med låg MSS.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.