I ricercatori di Netflix è Google Ci hè ottu vulnerabili in diverse implementazioni di u protocolu HTTP / 2 chì ponu causà una denegazione di serviziu mandendu un flussu di richieste di rete in un certu modu. U prublema affetta a maiò parte di i servitori HTTP cù supportu HTTP / 2 à un certu puntu è risultati in u travagliu chì esce da memoria o crea una massa di CPU. L'aghjurnamenti chì eliminanu e vulnerabilità sò digià presentati in и , ma per avà per Apache httpd è .
I prublemi sò risultatu da cumplicazioni intrudutte in u protocolu HTTP / 2 assuciatu cù l'usu di strutture binari, un sistema per limità i flussi di dati in cunnessione, un mecanismu di priorità di flussu, è a presenza di messagi di cuntrollu simili à ICMP chì operanu à a cunnessione HTTP / 2. livellu (per esempiu, ping, reset, è paràmetri di flussu). Parechje implementazioni ùn anu micca limitatu currettamente u flussu di i missaghji di cuntrollu, ùn anu micca gestionatu in modu efficiente a fila di priorità quandu trattanu e dumande, o anu utilizatu implementazioni subottimali di algoritmi di cuntrollu di flussu.
A maiò parte di i metudi di attaccu identificati venenu à mandà certe dumande à u servitore, chì portanu à a generazione di un gran numaru di risposti. Se u cliente ùn leghje micca e dati da u socket è ùn chjude micca a cunnessione, a fila di buffering di risposta in u latu di u servitore si riempie continuamente. Stu cumpurtamentu crea una carica nantu à u sistema di gestione di fila per processà e cunnessione di a rete è, secondu e funzioni di implementazione, porta à l'esaurimentu di a memoria dispunibule o risorse di CPU.
Vulnerabilità identificate:
- CVE-2019-9511 (Data Dribble) - un attaccu dumanda una grande quantità di dati in parechje fili manipulendu a dimensione di a finestra scorrevule è a priorità di u filu, furzendu u servitore à mette in fila i dati in blocchi di 1 byte;
- CVE-2019-9512 (Ping Flood) - un attaccante avvelena continuamente i missaghji ping nantu à una cunnessione HTTP / 2, pruvucannu a fila interna di risposte mandate à inundazioni da l'altra parte;
- CVE-2019-9513 (Resource Loop) - un attaccu crea parechje richieste di fili è cambia continuamente a priorità di i fili, facendu chì l'arbre di priorità si mischia;
- CVE-2019-9514 (Reset Flood) - un attaccante crea parechje fili
è manda una dumanda invalida à traversu ogni filu, pruvucannu u servitore per mandà frames RST_STREAM, ma ùn li accetta micca per riempie a fila di risposta; - CVE-2019-9515 (Settings Flood) - l'attaccante manda un flussu di frames "SETTINGS" vacanti, in risposta à quale u servitore deve ricunnosce a ricezione di ogni dumanda;
- CVE-2019-9516 (0-Length Headers Leak) - un attaccu manda un flussu di intestazioni cù un nome nulu è un valore nulu, è u servitore attribuisce un buffer in memoria per almacenà ogni intestazione è ùn u libera micca finu à a fine di a sessione. ;
- CVE-2019-9517 (Buffering di dati interni) - l'attaccante si apre
Finestra scorrevule HTTP / 2 per u servitore per mandà dati senza restrizioni, ma mantene a finestra TCP chjusa, impediscendu chì e dati sò veramente scritti à u socket. Dopu, l'attaccante manda dumande chì necessitanu una grande risposta; - CVE-2019-9518 (Empty Frames Flood) - Un attaccu manda un flussu di frames di tipu DATA, HEADERS, CONTINUATION, o PUSH_PROMISE, ma cù una carica viota è senza bandiera di terminazione di flussu. U servitore passa u tempu di processà ogni quadru, sproporzionatu à a larghezza di banda cunsumata da l'attaccante.
Source: opennet.ru
