S'han identificat 2 vulnerabilitats DoS en diverses implementacions del protocol HTTP/8

Investigadors de Netflix i Google identificat Hi ha vuit vulnerabilitats en diverses implementacions del protocol HTTP/2 que poden provocar una denegació de servei enviant un flux de sol·licituds de xarxa d'una determinada manera. El problema afecta la majoria dels servidors HTTP amb suport HTTP/2 fins a cert punt i fa que el treballador es quedi sense memòria o creï massa càrrega de CPU. Les actualitzacions que eliminen les vulnerabilitats ja es presenten a nginx 1.16.1/1.17.3 и H2O 2.2.6, però de moment no disponible per a Apache httpd i altres productes.

Els problemes van resultar de complicacions introduïdes al protocol HTTP/2 associades a l'ús d'estructures binàries, un sistema per limitar els fluxos de dades dins de les connexions, un mecanisme de priorització de flux i la presència de missatges de control semblants a ICMP que operen a la connexió HTTP/2. nivell (per exemple, paràmetres de ping, restabliment i flux). Moltes implementacions no limitaven adequadament el flux de missatges de control, no gestionaven de manera eficient la cua de prioritats en processar les sol·licituds o utilitzaven implementacions subòptimes dels algorismes de control de flux.

La majoria dels mètodes d'atac identificats es redueixen a l'enviament de certes sol·licituds al servidor, la qual cosa condueix a la generació d'un gran nombre de respostes. Si el client no llegeix dades del sòcol i no tanca la connexió, la cua de memòria intermèdia de respostes del costat del servidor s'omple contínuament. Aquest comportament crea una càrrega al sistema de gestió de cues per processar les connexions de xarxa i, depenent de les característiques d'implementació, comporta l'esgotament de la memòria disponible o els recursos de la CPU.

Vulnerabilitats identificades:

  • CVE-2019-9511 (Dribble de dades): un atacant sol·licita una gran quantitat de dades en diversos fils manipulant la mida de la finestra lliscant i la prioritat del fil, obligant el servidor a posar les dades en cua en blocs d'1 byte;
  • CVE-2019-9512 (Ping Flood): un atacant enverina contínuament els missatges de ping a través d'una connexió HTTP/2, fent que la cua interna de respostes enviades s'inundi a l'altra banda;
  • CVE-2019-9513 (bucle de recursos): un atacant crea diversos fils de sol·licitud i canvia contínuament la prioritat dels fils, fent que l'arbre de prioritats es barregi;
  • CVE-2019-9514 (restableix Flood): un atacant crea diversos fils
    i envia una sol·licitud no vàlida a través de cada fil, fent que el servidor enviï trames RST_STREAM, però no les accepta per omplir la cua de respostes;

  • CVE-2019-9515 (Settings Flood): l'atacant envia un flux de fotogrames buits "SETTINGS", en resposta al qual el servidor ha d'acusar la recepció de cada sol·licitud;
  • CVE-2019-9516 (fuga de capçaleres de longitud 0): un atacant envia un flux de capçaleres amb un nom nul i un valor nul, i el servidor assigna una memòria intermèdia a la memòria per emmagatzemar cada capçalera i no l'allibera fins que acabi la sessió. ;
  • CVE-2019-9517 (emmagatzematge en memòria intermèdia de dades): s'obre l'atacant
    Finestra lliscant HTTP/2 perquè el servidor enviï dades sense restriccions, però manté la finestra TCP tancada, evitant que les dades s'escriguin realment al sòcol. A continuació, l'atacant envia peticions que requereixen una resposta gran;

  • CVE-2019-9518 (Empty Frames Flood): un atacant envia un flux de fotogrames del tipus DATA, HEADERS, CONTINUATION o PUSH_PROMISE, però amb càrrega útil buida i sense senyal de terminació de flux. El servidor passa temps processant cada fotograma, desproporcionat a l'ample de banda consumit per l'atacant.

Font: opennet.ru

Afegeix comentari