Janë zbuluar informacionet rreth metodës së sulmit "Continuation flood", që preku zbatime të ndryshme të protokollit HTTP/2, përfshirë Apache httpd, Apache Traffic Server, Node.js, oghttp, Go net/http2, Envoy, oghttp dhe nghttp2. Kjo dobësi mund të përdoret për të kryer sulme ndaj serverëve që mbështesin HTTP/2.0 dhe, në varësi të zbatimit, çon në shterimin e memorie (ndalimi i trajtimit të kërkesave ose mbyllja e procesëve) ose krijimin e ngarkesës së lartë në CPU (ngadalësimi i trajtimit të kërkesave). Sipas kërkuesit që zbuloi dobësinë, problemi i identifikuar është më i rrezikshëm se dobësia "Rapid Reset" e zbuluar vitin e kaluar, e cila u përdor për të kryer sulme DDoS më të mëdha në atë kohë.
Niveli i lartë i rrezikut shpjegohet me faktin se për të cënuar operimin server, mbylljen e papritur ose zvogëlimin e rëndësishëm të performancës, mjafton krijimi i një fluksi kërkesash të formatuara posaçërisht nga një kompjuter i zakonshëm. Në disa raste, për të kryer sulmin mjafton madje edhe një lidhje TCP. Në të njëjtën kohë, trafiku i lidhur me sulmin nuk dallohet asnjëherë në logjet përballë kërkesave të zakonshme të përdoruesve.
Dobësia shkaktohet nga veçoritë e trajtimit të kadrove HEADERS dhe CONTINUATION në kërkesat për protokollin HTTP/2. Kadrat HEADERS përdoren në HTTP/2 për të transferuar titujt HTTP, ndërsa kadrot CONTINUATION për ndarjen e dërgesës së titujve HTTP në disa faza (për shembull, kur titujt nuk futen në një kadër ose kur fillimisht duhen dërguar tituj që mund të plotësohen në këtë fazë dhe më pas të dërgohen tituj të tjerë që vlera e të cilëve për momentin nuk mund të përcaktohet). Kur dërgohen titujt në disa faza, fillimisht dërgohet një kadër HEADERS pa flamurin END_HEADERS, pas tij vijnë disa kadra CONTINUATION me tituj shtesë dhe lista mbyllet me një kadër CONTINUATION që ka flamurin END_HEADERS.
Metoda e sulmit reduktohet në dërgimin e një fluksi të pandërprerë të kadrove CONTINUATION pa vendosur flamurin END_HEADERS. Kjo aktivitet sjell dërgimin e server një numri të madh titujsh, të cilët serveri i ruan në memorien operative derisa memoria e disponueshme për procesin të shterojë. Për të krijuar ngarkesë të lartë në CPU, përveç shterimit të memories, sulmuesi mund të përfitojë nga kompresimi i përmbajtjes së kadrove CONTINUATION duke përdorur formatin HPACK, analiza e të cilit kërkon llogaritje. Në zbatimet e protokollit HTTP/1.1, për të mbrojtur serverin nga mbinxehja me tituj, është përdorur një kufizim mbi madhësinë e titujve dhe një kohë skadimi për dërgimin e lidhjes. Për HTTP/2, për shkak të kompleksitetit të protokollit, shumë zbatime nuk parashikuan metoda të tilla mbrojtjeje nga dërgimi i pafund i titujve.
Kjo dobësi paraqet rrezikun më të madh për përdoruesit e Node.js (CVE-2024-27983), pasi kjo zbatim lejon që të arrihet mbyllja e programit përmes dërgimit të vetëm disa kadrove në server. Për shkak të një situate garuese në Node.js, për të shkaktuar mbylljen e papritur përmes aktivizimit të kontrollit Assert, mjafton të mbyllet lidhja gjatë dërgimit të një fluksi titujsh që nuk është përfunduar (ndodh një dështim nëse gjatë mbylljes së lidhjeve nuk është arritur akoma një kadër CONTINUATION me flamurin END_HEADERS). Dobësia është eliminuar në Node.js 18.20.1, 21.7.2 dhe 20.12.1, si dhe në versionet e fundit të bibliotekave llhttp dhe undici. Në versionet e reja të Node.js është eliminuar gjithashtu një dobësi më pak të rrezikshme (CVE-2024-27982) që ka të bëjë me klasën "request smuggling", e cila lejon, përmes manipulimit të vlerës "Content Length", të përfshihet në përmbajtjen e kërkesave të përdoruesve të tjerë që përpunohen në të njëjtin flux ndërmjet frontend dhe backend.
Dobësitë që lidhen me trajtimin e CONTINUATION, në zbatime të tjera të HTTP/2.0:
- oghttp (CVE-2024-27919) â konsum i pakufizuar i memories.
- Tempesta FW (CVE-2024-2758) â shmangie e kufizimeve.
- Biblioteka PHP amphp/http, amphp/http-client dhe amphp/http-server (CVE-2024-2653) â konsum i pakufizuar i memories, deri nĂ« shterimin e plotĂ« tĂ« memories sĂ« disponueshme.
- Paketa Go net/http (CVE-2023-45288) â krijimi i ngarkesĂ«s sĂ« lartĂ« nĂ« CPU.
- Biblioteka nghttp2 (CVE-2024-28182) â shkaktimi i dĂ«shtimit nĂ« shĂ«rbim.
- Apache Httpd (CVE-2024-27316) â konsum i tepĂ«rt i memories dhe krijimi i ngarkesĂ«s nĂ« CPU.
- Apache Traffic Server (CVE-2024-31309) â konsum i tepĂ«rt tĂ« burimeve.
- Envoy (CVE-2024-30255) â krijimi i ngarkesĂ«s sĂ« lartĂ« nĂ« CPU (pĂ«r ngarkesĂ« maksimale tĂ« njĂ« bĂ«rthame CPU Ă«shtĂ« e nevojshme njĂ« fluks prej 300Mbit/s).
Burimi: opennet.ru
