Avalikustatud on teave âContinuation floodâ rĂŒnnaku meetodi kohta, mis puudutab erinevaid HTTP/2 protokolli rakendusi, sealhulgas Apache httpd, Apache Traffic Server, Node.js, oghttp, Go net/http2, Envoy, oghttp ja nghttp2. Haavatavust saab kasutada rĂŒnnakute teostamiseks HTTP/2.0 toe all olevatele serveritele ja sĂ”ltuvalt rakendusest vĂ”ib see pĂ”hjustada mĂ€lu ammendumist (pĂ€rast pĂ€ringute töötlemise lĂ”petamist vĂ”i protsesside kokkuvarisemist) vĂ”i kĂ”rget CPU koormust (pĂ€ringute töötlemise aeglustumine). Probleemi leidnud uurija arvates on tuvastatud probleem ohtlikum kui eelmisel aastal leitud âRapid Resetâ haavatavus, mida kasutati toona suurimate DDoS-rĂŒnnakute korraldamiseks.
Ohtlikkuse kĂ”rge tase seletub sellega, et töö hĂ€irimiseks serverile, protsessi kokkuvarisemiseks vĂ”i tĂ”sise jĂ”udluse languse saavutamiseks piisab spetsiaalselt vormistatud pĂ€ringute voogude genereerimisest ĂŒhest tavalise arvuti seadmest. Teatud juhtudel on rĂŒnnaku teostamiseks piisav isegi ĂŒks TCP-ĂŒhendus. Sellega seoses ei eristu rĂŒnnakute kĂ€igus genereeritud liiklus logides tavalisest kasutaja pĂ€ringute taustast.
Haavatavus tuleneb HTTP/2 protokolli pĂ€ringute HEADERS ja CONTINUATION kaadris töötlemise eripĂ€radest. HEADERS kaadreid kasutatakse HTTP/2-s HTTP-pealkirjade edastamiseks, samas kui CONTINUATION kaadreid kasutatakse HTTP-pealkirjade edastamise jagamiseks mitmeks etapiks (nĂ€iteks, kui pealkirjad ei mahu ĂŒhte kaadrisse vĂ”i kui alguses tuleb edastada pealkirjad, mida saab praegusel etapil tĂ€ita, ja seejĂ€rel edastada lĂ”puks need pealkirjad, mille vÀÀrtusi ei saa veel mÀÀrata). Kui pealkirju edastatakse mitmes etapis, saadetakse esmalt HEADERS kaader, millel ei ole END_HEADERS lippu, sellele jĂ€rgneb mitu CONTINUATION kaadrit koos tĂ€iendavate pealkirjadega ja lĂ”petab nimekirja kaader CONTINUATION koos END_HEADERS lipuga.
RĂŒnnakumeetod seisneb END_HEADERS lipu puudumisega CONTINUATION kaadrite katkematus voogu saatmises. Sarnane tegevus toob kaasa server suure hulga pealkirjade edastamise, mida server hoiab mĂ€lus seni, kuni protsessi töötlemiseks vajalik mĂ€lu on ammendatud. Lisaks mĂ€lu ammendumisele vĂ”ib rĂŒndaja CPU koormuse suurendamiseks kasutada ka CONTINUATION kaadrite sisu kokkusurumist HPACK formaadis, mille parseerimine nĂ”uab arvutusressursse. HTTP/1.1 protokolli rakendustes kasutati serverite pealkirjade uputamise kaitsmiseks pealkirjade suuruse piiri ja ĂŒhenduse edastamise ajutĂ€it. HTTP/2 puhul ei ole protokolli keerukuse tĂ”ttu paljud rakendused selliseid kaitsemeetmeid piiramatu pealkirjade edastamise vastu ette nĂ€inud.
Suuremat ohtu esindab haavatavus Node.js kasutajate jaoks (CVE-2024-27983), kuna see rakendus vĂ”imaldab serverile saatmise kaudu paaride kaadritega serveri kokkuvarisemist saavutada. Node.js-is on vĂ”iduvĂ”idu puhul piisav lĂ”petada ĂŒhendused pealkirjade katkematu voolu saatmise ajal, et pĂ”hjustada katkestust (kui CONTINUATION kaader END_HEADERS lipuga ei ole veel toimunud). Haavatavus on kĂ”rvaldatud Node.js versioonides 18.20.1, 21.7.2 ja 20.12.1, samuti uusimates versioonides llhttp ja undici teekidest. Uutes Node.js versioonides on kĂ”rvaldatud ka vĂ€hem ohtlik haavatavus (CVE-2024-27982) ârequest smugglingâ kategooriast, mis vĂ”imaldab manipuleerida âContent Lengthâ vÀÀrtusega, et vahele kĂ€ia teiste kasutajate pĂ€ringute sisu, mis töödelda samas voos frontendi ja backend'i vahel.
CONTINUATION kaadrite töötlemisega seotud haavatavused muudes HTTP/2.0 rakendustes:
- oghttp (CVE-2024-27919) â piiramatud mĂ€lu tarbimise.
- Tempesta FW (CVE-2024-2758) â piirangute ĂŒletamine.
- PHP teegid amphp/http, amphp/http-client ja amphp/http-server (CVE-2024-2653) â piiramatud mĂ€lu tarbimise, kuni kogu mĂ€lumaht on ammendatud.
- Go pakett net/http (CVE-2023-45288) â kĂ”rge CPU koormuse tekitamine.
- nghttp2 teek (CVE-2024-28182) â teenuse kĂ€ttesaamatuse tekitamine.
- Apache Httpd (CVE-2024-27316) â ĂŒlemÀÀrane mĂ€lu tarbimine ja CPU koormuse tekitamine.
- Apache Traffic Server (CVE-2024-31309) â ĂŒlemÀÀrane ressursside tarbimine.
- Envoy (CVE-2024-30255) â kĂ”rge CPU koormuse tekitamine (tĂ€ielik koormus ĂŒhe CPU tuuma jaoks nĂ”uab 300Mbit/s voogu).
Allikas: opennet.ru
