Actualitat

La nova vulnerabilitat HTTP/2 exposa els servidors web a atacs DoS

NOTÍCIES

03/05/2024

Una nova investigació ha trobat que el marc CONTINUATION del protocol HTTP/2 es pot explotar per dur a terme atacs de denegació de servei (DoS).

La tècnica ha rebut el nom en codi HTTP/2 CONTINUATION Flood per l’investigador de seguretat Bartek Nowotarski, que va informar del problema al Centre de Coordinació CERT (CERT/CC) el 25 de gener de 2024.

«Moltes implementacions HTTP/2 no limiten ni desinfecten correctament la quantitat de fotogrames CONTINUATION enviats dins d’un sol flux», va dir el CERT/CC en un assessorament el 3 d’abril de 2024.

«Un atacant que pot enviar paquets a un servidor objectiu pot enviar un flux de fotogrames CONTINUATION que no s’afegiran a la llista de capçaleres a la memòria, però, tot i això, seran processats i descodificats pel servidor o s’afegiran a la llista de capçaleres, provocant un fallada de memòria (OOM).»

Igual que a HTTP/1, HTTP/2 utilitza camps de capçalera dins de les sol·licituds i les respostes. Aquests camps de capçalera poden incloure llistes de capçaleres, que al seu torn, se serialitzen i es divideixen en blocs de capçalera. Aleshores, els blocs de capçalera es divideixen en fragments de bloc i es transmeten dins de HEADERS o el que s’anomena trames CONTINUATION.

«El marc CONTINUATION (tipus=0x9) es fa servir per continuar una seqüència de fragments de blocs de capçalera», estableix la documentació de RFC 7540.

«Es pot enviar qualsevol nombre de fotogrames CONTINUATION, sempre que el fotograma anterior estigui al mateix flux i sigui unHEADERS, PUSH_PROMISE, o el marc CONTINUATION sense l’assenyalador END_HEADERS establert.»

L’últim fotograma que conté capçaleres tindrà l’assenyalador END_HEADERS establert, que indica el punt final remot que fa de final del bloc de capçalera.

Segons Nowotarski, CONTINUATION Flood és un tipus de vulnerabilitats dins de diverses implementacions del protocol HTTP/2 que suposen una amenaça més greu que l’atac Rapid Reset que va sortir a la llum l’octubre de 2023.

«Una sola màquina (i, en determinats casos, una mera connexió TCP o un grapat de fotogrames) té el potencial d’interrompre la disponibilitat del servidor, amb conseqüències que van des de bloquejos del servidor fins a una degradació substancial del rendiment», va dir l’investigador. «El més destacable és que les sol·licituds que constitueixen un atac no són visibles als registres d’accés HTTP».

La vulnerabilitat, en el seu nucli, té a veure amb el maneig incorrecte dels HEADER i de múltiples marcs CONTINUATION que obren el camí per a una condició de DoS.

En altres paraules, un atacant pot iniciar un nou flux HTTP/2 contra un servidor objectiu mitjançant una implementació vulnerable i enviar fotogrames HEADERS i CONTINUATION sense marcar el END_HEADERS establert, i crea un flux interminable de capçaleres que el servidor HTTP/2 necessitaria per analitzar i emmagatzemar a la memòria.

Tot i que el resultat exacte varia segons la implementació, els impactes van des d’un bloqueig instantani després d’enviar un parell de fotogrames HTTP/2 i un error de memòria fins a l’esgotament de la CPU, cosa que afecta la disponibilitat del servidor.

«RFC 9113 […] menciona diversos problemes de seguretat que poden sorgir si els marcs CONTINUATION no es gestionen correctament», va dir Nowotarski.

«Al mateix temps, no esmenta un cas concret en què s’enviïn trames CONTINUATION sense l’assenyalador final END_HEADERS que pot tenir repercussions en els servidors afectats».

El problema afecta diversos projectes com ara amphp/http (CVE-2024-2653), Apache HTTP Server (CVE-2024-27316), Apache Tomcat (CVE-2024-24549), Apache Traffic Server (CVE-2024-31309), Envoy proxy (CVE-2024-27919 i CVE-2024-30255), Golang (CVE-2023-45288), h2 Rust crate, nghttp2 (CVE-2024-28182), Node.js (CVE-2024-27983), i Tempesta FW (CVE-2024-2758).

Es recomana als usuaris que actualitzin el programari afectat a la darrera versió per mitigar les possibles amenaces. En absència d’una solució, es recomana considerar desactivar temporalment HTTP/2 al servidor.

Llegiu la notícia original al seu lloc web oficial fent clic en aquest mateix enllaç