2 DoS-sårbarheter er identifisert i ulike implementeringer av HTTP/8-protokollen

Forskere fra Netflix og Google avslørt Det er åtte sårbarheter i ulike implementeringer av HTTP/2-protokollen som kan forårsake tjenestenekt ved å sende en strøm av nettverksforespørsler på en bestemt måte. Problemet påvirker de fleste HTTP-servere med HTTP/2-støtte til en viss grad og resulterer i at arbeideren går tom for minne eller skaper for mye CPU-belastning. Oppdateringer som eliminerer sårbarheter er allerede presentert i nginx 1.16.1/1.17.3 и H2O 2.2.6, men inntil videre utilgjengelig for Apache httpd og andre produkter.

Problemene var et resultat av komplikasjoner introdusert i HTTP/2-protokollen assosiert med bruk av binære strukturer, et system for å begrense dataflyter innenfor tilkoblinger, en flytprioriteringsmekanisme og tilstedeværelsen av ICMP-lignende kontrollmeldinger som opererer ved HTTP/2-forbindelsen nivå (for eksempel ping-, tilbakestillings- og flytinnstillinger). Mange implementeringer begrenset ikke flyten av kontrollmeldinger på riktig måte, administrerte ikke prioritetskøen effektivt ved behandling av forespørsler, eller brukte suboptimale implementeringer av flytkontrollalgoritmer.

De fleste av de identifiserte angrepsmetodene går ut på å sende visse forespørsler til serveren, noe som fører til generering av et stort antall svar. Hvis klienten ikke leser data fra socket og ikke lukker forbindelsen, fylles responsbufferkøen på serversiden kontinuerlig. Denne virkemåten skaper en belastning på købehandlingssystemet for behandling av nettverkstilkoblinger og fører, avhengig av implementeringsfunksjonene, til utmatting av tilgjengelig minne eller CPU-ressurser.

Identifiserte sårbarheter:

  • CVE-2019-9511 (Data Dribble) - en angriper ber om en stor mengde data i flere tråder ved å manipulere skyvevindusstørrelsen og trådprioriteten, og tvinge serveren til å sette dataene i kø i 1-byte blokker;
  • CVE-2019-9512 (Ping Flood) - en angriper forgifter kontinuerlig ping-meldinger over en HTTP/2-tilkobling, noe som forårsaker at den interne køen av sendte svar oversvømmes på den andre siden;
  • CVE-2019-9513 (Resource Loop) - en angriper oppretter flere forespørselstråder og endrer kontinuerlig prioriteten til trådene, noe som får prioritetstreet til å blande seg;
  • CVE-2019-9514 (Reset Flood) - en angriper oppretter flere tråder
    og sender en ugyldig forespørsel gjennom hver tråd, noe som får serveren til å sende RST_STREAM-rammer, men godtar dem ikke for å fylle svarkøen;

  • CVE-2019-9515 (Settings Flood) - angriperen sender en strøm av tomme "SETTINGS"-rammer, som svar på hvilke serveren må bekrefte mottak av hver forespørsel;
  • CVE-2019-9516 (0-Length Headers Leak) – en angriper sender en strøm av overskrifter med et nullnavn og en nullverdi, og serveren tildeler en buffer i minnet for å lagre hver header og slipper den ikke før økten avsluttes ;
  • CVE-2019-9517 (Intern databuffering) - angriper åpnes
    HTTP/2 skyvevindu for serveren for å sende data uten begrensninger, men holder TCP-vinduet lukket, og forhindrer at data faktisk blir skrevet til stikkontakten. Deretter sender angriperen forespørsler som krever et stort svar;

  • CVE-2019-9518 (Empty Frames Flood) - En angriper sender en strøm av rammer av typen DATA, HEADERS, CONTINUATION eller PUSH_PROMISE, men med tom nyttelast og ingen flytavslutningsflagg. Serveren bruker tid på å behandle hver frame, uforholdsmessig til båndbredden som forbrukes av angriperen.

Kilde: opennet.ru

Legg til en kommentar