Continuation flood-attacker som orsakar problem pÄ servrar som anvÀnder HTTP/2.0

Uppgifter om attackmetoden "Continuation flood" har avslöjats, som pÄverkar olika implementationer av HTTP/2-protokollet, inklusive Apache httpd, Apache Traffic Server, Node.js, oghttp, Go net/http2, Envoy, oghttp och nghttp2. SÄrbarheten kan utnyttjas för att attackera servrar som stöder HTTP/2.0 och beroende pÄ implementation kan det leda till minnesutarmning (avbrytande av förfrÄgningshantering eller krasch av processer) eller skapa hög belastning pÄ CPU:n (fördröja hanteringen av förfrÄgningar). Enligt forskaren som upptÀckte sÄrbarheten Àr det identifierade problemet mer farligt Àn den sÄrbarhet som upptÀcktes förra Äret, "Rapid Reset", som anvÀndes för att utföra nÄgra av de största DDoS-attackerna vid den tiden.

Den höga risknivÄn förklaras av att det rÀcker med att skapa en ström av speciellt formaterade förfrÄgningar frÄn en vanlig dator för att störa driften, servern, krascha eller allvarligt försÀmra prestanda. I vissa fall rÀcker det med en enda TCP-anslutning för att genomföra attacken. Den trafik som Àr kopplad till attacken sÀrskiljs inte pÄ nÄgot sÀtt i loggarna frÄn vanliga anvÀndarförfrÄgningar.

SÄrbarheten orsakas av egenskaperna i behandlingen av HEADERS- och CONTINUATION-ramar i förfrÄgningar via HTTP/2-protokollet. HEADERS-ramar anvÀnds i HTTP/2 för att överföra HTTP-rubriker, medan CONTINUATION-ramar anvÀnds för att dela upp överföringen av HTTP-rubriker i flera steg (till exempel nÀr rubrikerna inte fÄr plats i en ram eller nÀr man först mÄste skicka rubriker som kan fyllas i vid nuvarande steg, och sedan skicka rubriker vars vÀrden för nÀrvarande inte kan bestÀmmas). Vid överföring av rubriker i flera steg skickas först en HEADERS-ram utan flaggan END_HEADERS, följt av flera CONTINUATION-ramar med ytterligare rubriker och avslutas med en CONTINUATION-ram med flaggan END_HEADERS.

Attackmetoden gÄr ut pÄ att skicka en oavbruten ström av CONTINUATION-ramar utan att sÀtta flaggan END_HEADERS. SÄdan aktivitet leder till överföring av server ett stort antal rubriker som servern lagrar i det aktiva minnet tills den tillgÀngliga minnet för processen Àr uttömt. För att skapa hög belastning pÄ CPU:n kan en angripare, förutom att uttömma minnet, utnyttja komprimering av CONTINUATION-innehÄll med hjÀlp av HPACK-formatet, vars analys krÀver berÀkningar. I implementationer av protokollet HTTP/1.1 har det införts begrÀnsningar för storleken pÄ rubriker och timeout för anslutningssÀndning för att skydda mot översvÀmning av servern med rubriker. För HTTP/2, pÄ grund av protokollets komplexitet, har mÄnga implementationer inte förutsett sÄdana skydd mot oÀndlig sÀndning av rubriker.

SÄrbarheten utgör den största risken för anvÀndare av Node.js (CVE-2024-27983), eftersom denna implementation tillÄter krasch genom att skicka endast nÄgra fÄ ramar till servern. PÄ grund av en kapplöpning i Node.js Àr det tillrÀckligt att avsluta anslutningar under sÀndningen av en ofullstÀndig headerström för att utlösa ett kraschtillstÄnd via en Assert-kontroll (krasch om en CONTINUATION-ram med flaggan END_HEADERS Ànnu inte har kommit under stÀngning av anslutningarna). SÄrbarheten har ÄtgÀrdats i Node.js version 18.20.1, 21.7.2 och 20.12.1, samt i de senaste versionerna av biblioteken llhttp och undici. I de nya versionerna av Node.js har Àven en mindre farlig sÄrbarhet (CVE-2024-27982) av typen "request smuggling" ÄtgÀrdats, vilket möjliggör infiltrering av innehÄllet i andra anvÀndares förfrÄgningar som behandlas i samma ström mellan frontend och backend genom manipulation av vÀrdet "Content Length".

SÄrbarheter i samband med hantering av CONTINUATION i andra implementationer av HTTP/2.0:

  • oghttp (CVE-2024-27919) — oĂ€ndlig minnesförbrukning.
  • Tempesta FW (CVE-2024-2758) — kringgĂ„ begrĂ€nsningar.
  • PHP-biblioteket amphp/http, amphp/http-client och amphp/http-server (CVE-2024-2653) — oĂ€ndlig minnesförbrukning, ner till fullstĂ€ndig utarmning av tillgĂ€ngligt minne.
  • Go-paketet net/http (CVE-2023-45288) — skapa hög belastning pĂ„ CPU.
  • Biblioteket nghttp2 (CVE-2024-28182) — utlösa en tjĂ€nsteavbrott.
  • Apache Httpd (CVE-2024-27316) — överdriven minnesförbrukning och skapa belastning pĂ„ CPU.
  • Apache Traffic Server (CVE-2024-31309) — överdriven resursförbrukning.
  • Envoy (CVE-2024-30255) — skapa hög belastning pĂ„ CPU (för att uppnĂ„ full belastning av ett CPU-kĂ€rna krĂ€vs en ström pĂ„ 300Mbit/s).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster