Drie kwetsbaarheden gevonden in Linux TCP-stacks die leiden tot remote denial of service

linux crash

Onlangs heeft het nieuws vrijgegeven over de identificatie van verschillende kritieke kwetsbaarheden in Linux TCP-stacks en FreeBSD die stelt een aanvaller in staat om op afstand een kernelfout te initiëren of overmatig gebruik van bronnen veroorzaken bij het verwerken van speciaal vervaardigde TCP-pakketten (pakket des doods).

De problemen worden veroorzaakt door bugs in de handlers voor maximale datablokgrootte. in het TCP-pakket (MSS, Maximum Segment Size) en het mechanisme voor selectieve verbindingsbevestiging (SACK, Selective TCP Acknowledgement).

Wat is een selectieve erkenning?

Selectieve TCP-bevestiging (SACK) Het is een mechanisme waarbij de gegevensontvanger de zender kan informeren over alle segmenten die met succes zijn geaccepteerd.

deze stelt de afzender in staat om ontbrekende segmenten van de stream opnieuw te verzenden van zijn 'bekende' set. Wanneer TCP SACK is uitgeschakeld, is er een veel grotere reeks hertransmissies nodig om een ​​hele stream opnieuw te verzenden.

In de Linux-kernel zijn de problemen opgelost in versies 4.4.182, 4.9.182, 4.14.127, 4.19.52 en 5.1.11. De oplossing voor FreeBSD is beschikbaar als patch.

Er zijn kernelpakketupdates uitgebracht voor Debian, RHEL, SUSE/openSUSE, ALT, Ubuntu, Fedora en Arch Linux.

CVE-2019-11477 (ZAK Paniek)

Het probleem manifesteert zich in Linux-kernels vanaf 2.6.29 en stelt je in staat een kernelcrash te veroorzaken (paniek) bij het verzenden van een reeks SACK-pakketten vanwege een overloop van gehele getallen in de controller.

Voor een aanval is het voldoende om de MSS-waarde in te stellen op 48 bytes voor een TCP-verbinding en het op een bepaalde manier verzenden van een reeks gerangschikte SACK-pakketten.

De essentie van het probleem is dat de structuur tcp_skb_cb (socketbuffer) is ontworpen om 17 fragmenten op te slaan ("definieer MAX_SKB_FRAGS(65536 / PAGE_SIZE + 1) => 17").

Tijdens het verzenden van een pakket wordt het in de verzendwachtrij geplaatst en slaat tcp_skb_cb details over het pakket op, zoals het volgnummer, vlaggen, evenals de velden "tcp_gso_segs" en "tcp_gso_size", die worden gebruikt om segmentatie-informatie naar de controller (TSO, Segment Segment Download) te sturen om segmenten aan de NIC-zijde te verwerken.

Fragmenten worden opgeslagen wanneer pakketverlies of de behoefte aan selectieve hertransmissie van pakketten optreedt, als SACK is ingeschakeld en TSO wordt ondersteund door de driver.

Als tijdelijke oplossing voor bescherming kunt u SACK-verwerking uitschakelen of verbindingen blokkeren met kleine MSS (werkt alleen als u sysctl net.ipv4.tcp_mtu_probing instelt op 0 en kan sommige normale problemen verbreken met lage MSS).

CVE-2019-11478 (SACK Traagheid)

Deze mislukking veroorzaakt een onderbreking van het SACK-mechanisme (bij gebruik van de Linux-kernel op 4.15) of overmatig gebruik van bronnen.

Het probleem doet zich voor bij het verwerken van speciaal vervaardigde SACK-pakketten die kunnen worden gebruikt om de wachtrij voor herverzending te fragmenteren (TCP-herverzending). De oplossingen voor de bescherming zijn vergelijkbaar met de vorige kwetsbaarheden

CVE-2019-5599 (SACK Traagheid)

Maakt het mogelijk om de kaart van verzonden pakketten te fragmenteren bij het verwerken van een SACK-reeks binnen een enkele TCP-verbinding en ervoor zorgen dat een resource-intensieve lijstzoekbewerking wordt uitgevoerd.

Het probleem manifesteert zich in FreeBSD 12 met het RACK-mechanisme voor pakketverliesdetectie. Als tijdelijke oplossing kunt u de RACK-module uitschakelen (deze wordt niet standaard geladen, maar wordt uitgeschakeld door sysctl net.inet.tcp.functions_default = freebsd op te geven)

CVE-2019-11479

Door de fout kan een aanvaller ervoor zorgen dat de Linux-kernel reacties opsplitst in meerdere TCP-segmenten, die elk slechts 8 bytes aan gegevens bevatten, wat kan leiden tot een aanzienlijke toename van het verkeer, een toename van de CPU-belasting en een verstopt communicatiekanaal.

Bovendien verbruikt het extra bronnen (verwerkingskracht van de processor en netwerkkaart).

Deze aanval vereist voortdurende inspanningen van de aanvaller en de treffers zullen eindigen kort nadat de aanvaller stopt met het verzenden van verkeer.

Terwijl deze aanval aan de gang is, zal het systeem op verminderde capaciteit draaien, wat resulteert in een denial of service voor sommige gebruikers.

Een externe gebruiker kan dit probleem veroorzaken door de maximale segmentgrootte in te stellen (MSS) van een TCP-verbinding op de laagste limiet (48 bytes) en het verzenden van een reeks speciaal vervaardigde SACK-pakketten.

Als tijdelijke oplossing wordt aanbevolen om verbindingen met lage MSS te blokkeren.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.