Tre sårbarheter funnet i Linux TCP-stabler som fører til ekstern denial of service

linux krasj

Nylig ga ut nyheten om identifisering av flere kritiske sårbarheter i Linux TCP-stabler og FreeBSD det lar en angriper eksternt starte en kjernefeil eller forårsake overdreven ressursforbruk ved å behandle spesiallagde TCP-pakker (dødspakke).

Problemene er forårsaket av feil i håndtakene med maksimal størrelse på datablokken i TCP-pakken (MSS, Maksimal segmentstørrelse) og mekanismen for selektiv tilkoblingsgjenkjenning (SACK, Selektiv TCP-gjenkjenning).

Hva er en selektiv anerkjennelse?

Selektiv TCP-gjenkjenning (SACK) det er en mekanisme der datamottakeren kan informere avsenderen om alle segmentene som har blitt akseptert.

Dette Tillater avsenderen å overføre de manglende strømmesegmentene på nytt fra hans 'velkjente' sett. Når TCP SACK er deaktivert, kreves et mye større sett med retransmissjoner for å overføre en hel sekvens.

I Linux-kjernen er problemene løst i versjoner 4.4.182, 4.9.182, 4.14.127, 4.19.52 og 5.1.11. Løsningen for FreeBSD er tilgjengelig som en patch.

Oppdateringer av kjernepakker er utgitt for Debian, RHEL, SUSE / openSUSE, ALT, Ubuntu, Fedora og Arch Linux.

CVE-2019-11477 (SACK Panic)

Problemet manifesterer seg i Linux-kjerner fra og med 2.6.29 og lar deg krasje kjernen (panikk) når du sender en serie SACK-pakker på grunn av et helt talloverløp i kontrolleren.

For et angrep er det tilstrekkelig å sette MSS-verdien til 48 byte for en TCP-forbindelse og sende en sekvens av ordnede SACK-pakker på en bestemt måte.

Essensen av problemet er at strukturen tcp_skb_cb (Socket Buffer) er designet for å lagre 17 fragmenter ("Definer MAX_SKB_FRAGS (65536 / PAGE_SIZE + 1) => 17").

I prosessen med å sende en pakke blir den plassert i sendekøen og tcp_skb_cb lagrer detaljer om pakken, slik som sekvensnummeret, flaggene, så vel som "tcp_gso_segs" og "tcp_gso_size" -feltene, som brukes til å sende segmenteringsinformasjon til kontrolleren (TSO, Segment Segment Download) for å behandle segmenter på nettverkskortsiden.

Biter lagres når pakketap eller behovet for selektiv pakkesending overføres, hvis SACK er aktivert og TSO støttes av driveren.

Som en løsning for beskyttelse kan du deaktivere SACK-behandling eller blokkere forbindelser med en liten MSS (fungerer bare når du setter sysctl net.ipv4.tcp_mtu_probing til 0 og kan bryte noe normalt med lav MSS).

CVE-2019-11478 (SACK Langsomhet)

Denne feilen forårsaker et avbrudd i SACK-mekanismen (når du bruker Linux-kjernen i 4.15) eller overdreven ressursforbruk.

Problemet manifesterer seg når spesiallagde SACK-pakker behandles som kan brukes til å fragmentere retransmissjonskøen (TCP-retransmissjon). Løsningene for beskyttelse er lik de tidligere sårbarhetene

CVE-2019-5599 (SACK Langsomhet)

Lar forårsake fragmentering av kartet over pakker som sendes når du behandler en SACK-sekvens innenfor en enkelt TCP-tilkobling og føre til at en ressurskrevende listeoppslagsoperasjon kjører.

Problemet manifesterer seg i FreeBSD 12 med deteksjonsmekanismen RACK for pakketap. Som en løsning kan du deaktivere RACK-modulen (den er ikke lastet som standard, den er deaktivert ved å spesifisere sysctl net.inet.tcp.functions_default = freebsd)

CVE-2019-11479

Feilen tillater en angriper å få Linux-kjernen til å dele svarene i flere TCP-segmenter, hver av dem inkluderer bare 8 byte med data, noe som kan føre til en betydelig økning i trafikk, økt CPU-belastning og en tett kommunikasjonskanal.

I tillegg bruker den ekstra ressurser (prosessorstrøm og nettverkskort).

Dette angrepet krever kontinuerlig innsats fra angriperens side, og treffene avsluttes kort tid etter at angriperen slutter å sende trafikk.

Mens dette angrepet pågår, vil systemet kjøre med redusert kapasitet, og forårsake nektelse av tjenesten for noen brukere.

En ekstern bruker kan utløse dette problemet ved å angi maksimal segmentstørrelse (MSS) til en TCP-forbindelse på den laveste grensen (48 byte) og sende en sekvens av spesiallagde SACK-pakker.

Som en løsning anbefales det å blokkere forbindelser med lav MSS.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.