Rohkem teavet rĂŒnnakumeetodi «Continuation flood» kohta, mis mĂ”jutab erinevaid HTTP/2 protokolli teostusi, sealhulgas Apache httpd, Apache Traffic Server, Node.js, oghttp, Go net/http2, Envoy, oghttp ja nghttp2. Haavatavust saab kasutada HTTP/2.0 toega serverite rĂŒndamiseks ja sĂ”ltuvalt teostusest vĂ”ib see viia mĂ€lu ammendumiseni (pĂ€ringute töötlemise lĂ”petamine vĂ”i protsesside kokkuvarisemine) vĂ”i kĂ”rge CPU koormuse tekkimiseni (pĂ€ringute töötlemise aeglustamine). Uuringu autor, kes avastas haavatavuse, usub, et tuvastatud probleem on ohtlikum kui eelmisel aastal leitud «Rapid Reset» haavatavus, mida kasutati tookord suurimate DDoS-rĂŒnnakute lĂ€biviimiseks.
Ohtlikkuse kĂ”rge tase on seletatav sellega, et sĂŒsteemi töö hĂ€irimiseks serverilt, kokkuvarisemiseks vĂ”i tĂ”sise jĂ”udluse languse saavutamiseks piisab ĂŒhe tavapĂ€rase arvuti poolt spetsiaalselt koostatud pĂ€ringute voogude genereerimisest. Teatud juhtudel piisab rĂŒnnaku teostamiseks isegi ĂŒhest TCP-ĂŒhendusest. Samal ajal ei eristata rĂŒnnakuga seotud liiklust logides tavapĂ€rastest kasutaja pĂ€ringutest.
Haavatavus on pĂ”hjustatud HTTP/2 protokolli raamide HEADERS ja CONTINUATION töötlemise eripĂ€rast. Raame HEADERS kasutatakse HTTP/2-s HTTP-pealkirjade edastamiseks ning raame CONTINUATION kasutatakse HTTP-pealkirjade saatmise etappideks jagamiseks (nt kui pealkirjad ei mahuks ĂŒhte raamidesse vĂ”i kui alguses tuleb saata pealkirjad, mida saab hetkel tĂ€ita, ja seejĂ€rel saata veel pealkirjad, mille vÀÀrtusi ei saa praegu mÀÀrata). Kui pealkirjad saadetakse mitme etapiga, saadetakse alguses raam HEADERS, millel ei ole lĂ”pp-pealkirja (END_HEADERS) mĂ€rget, millele jĂ€rgneb mitu raam CONTINUATION tĂ€iendavate pealkirjadega ning nimekiri lĂ”petatakse raamiga CONTINUATION lĂ”pp-pealkirja mĂ€rgiga.
RĂŒnnakumeetod seisneb tĂ€iustamata CONTINUATION raamide pidevas saatmises ilma lĂ”pp-pealkirja (END_HEADERS) mĂ€rgi mÀÀramata. Selline tegevus viib edastuseni server suure hulga pealkirjade sĂ€ilitamine, mida server hoiab mĂ€lu, kuni protsessile saadaval olev mĂ€lu on otsa saanud. Suure CPU koormuse tekitamiseks vĂ”ib rĂŒndaja lisaks mĂ€lule ammendumisele kasutada ka CONTINUATION kaadrite sisu kokkusurumist HPACK formaadis, mille analĂŒĂŒsimiseks on vajalikud arvutused. HTTP/1.1 protokollide rakenduste jaoks kasutati serveri pealkirjade ĂŒleujutuse kaitsmiseks pealkirjatriged ja ĂŒhenduse saatmise aja ooteaega. HTTP/2 puhul, protokolli keerukuse tĂ”ttu, ei ole paljud rakendused sarnaste meetodite kasutamiseks piiranud lĂ”pmatute pealkirjade saatmise kaitset.
Selle haavatavuse suurim oht seisneb Node.js kasutajates (CVE-2024-27983), kuna see rakendus vĂ”imaldab kokkuvarisemist, saates serverile ainult mĂ”ned kaadrid. Node.js-i jagamisprotsessi tĂ”ttu on ĂŒhenduse katkestamine sambade saatmise ajal, kui on veel saata lĂ”petamata pealkirjade voog, piisav kriitilise olukorra kohta â seda on vĂ”imalik saavutada, kui CONTINUATION kaader ei ole veel saabuva lĂ”pp-pealkirjaga END_HEADERS, kui jĂ€tkatakse ĂŒhenduste sulgemise protsessi. Haavatavus on kĂ”rvaldatud Node.js versioonides 18.20.1, 21.7.2 ja 20.12.1 ning ka uusimates llhttp ja undici raamatukogudes. Uutes Node.js versioonides on samuti kĂ”rvaldatud vĂ€hem ohtlik haavatavus (CVE-2024-27982), mis kuulub "request smuggling" klassi, vĂ”imaldades manipuleerida "Content Length" vÀÀrtusega teiste kasutajate pĂ€ringute sisu suunamiseks, mida töödeldakse samas voos esifondi ja tagavara vahel.
Haavatavused, mis on seotud CONTINUATION töötlemisega, teistes HTTP/2.0 rakendustes:
- oghttp (CVE-2024-27919) â piiramatud mĂ€lutarbed.
- Tempesta FW (CVE-2024-2758) â piirangute mööda hiilimine.
- PHP-raamatukogud amphp/http, amphp/http-client ja amphp/http-server (CVE-2024-2653) â piiramatud mĂ€lutarbed, kuni saadava mĂ€lu tĂ€ieliku ammendumiseni.
- Go-pakett net/http (CVE-2023-45288) â kĂ”rge CPU koormuse tekitamine.
- Nghttp2 raamatukogu (CVE-2024-28182) â teenuse katkestamise pĂ”hjustamine.
- Apache Httpd (CVE-2024-27316) â ĂŒlemÀÀraste mĂ€lutarvete ja CPU koormuse tekitamine.
- Apache Traffic Server (CVE-2024-31309) â ĂŒlemÀÀraste ressursside tarbimine.
- Envoy (CVE-2024-30255) â kĂ”rge CPU koormuse tekitamine (ĂŒhe CPU tuuma tĂ€istegevuseks on vajalik 300Mbit/s voog).
Allikas: opennet.ru
