Sintesi
È stata recentemente analizzata una vulnerabilità che riguarda l’implementazione del protocollo HTTP/2 che potrebbe consentire attacchi di tipo “Denial of Service”.
Rischio
Stima d’impatto della vulnerabilità sulla comunità di riferimento: ALTO/ARANCIONE (65/100)1
Tipologia
- Denial of Service
Descrizione
È stata recentemente analizzata una vulnerabilità che riguarda l’implementazione del protocollo HTTP/2 che potrebbe consentire attacchi di tipo “Denial of Service”.
La vulnerabilità riguarda le modalità di utilizzo dei frame CONTINUATION, che consentono la frammentazione dei blocchi di dati trasmessi tra client e server al fine di migliorare le prestazioni di trasmissione.
Nel dettaglio, tali frame devono essere inviati in un determinato ordine, seguendo il flusso delle intestazioni. Ogni frame inoltre deve avere il flag END_HEADERS impostato in maniera corretta: tale flag indica o meno se il frame corrente contiene l’ultima parte delle intestazioni dello stream di dati corrente. Qualora non sia impostato tale flag, il dispositivo di destinazione attende ulteriori frame di tipo CONTINUATION per completare la comunicazione.
È stato quindi rilevato che in molte implementazioni del protocollo non vi è una corretta limitazione dell’utilizzo di tali frame all’interno dei singoli flussi di trasmissione, che potrebbe permettere l’invio di frame opportunamente predisposti che anche se non utili al completamento della trasmissione, vengono comunque processati dal dispositivo target e che possono comportare situazioni di compromissione della disponibilità del servizio per esaurimento della memoria (OOM) o esaurimento delle risorse CPU sul dispositivo di destinazione.
La vulnerabilità riguarda le modalità in cui è stato implementato il protocollo all’interno ed interessa implementazioni software note – tra le quali Node.js HTTP/2 server e Apache HTTP Server – per le quali i rispettivi vendor/sviluppatori stanno provvedendo a rilasciare i relativi aggiornamenti di sicurezza.
Prodotti affetti e relativi indicatori univoci di vulnerabilità
Di seguito una lista non esaustiva di prodotti interessati per i quali i rispettivi vendor stanno provvedendo a sanare la vulnerabilità:
Prodotto | CVE |
---|---|
Apache HTTP Server | CVE-2024-27316 |
Apache Traffic Server | CVE-2024-31309 |
Node.js | CVE-2024-27983 |
nghttp2 | CVE-2024-28182 |
Envoy Proxy | CVE-2024-27919 e CVE-2024-30255 |
Tempesta FW | CVE-2024-2758 |
amphp/http | CVE-2024-2653 |
GO net/http e net/http2 | CVE-2023-45288 |
Azioni di mitigazione
Ove non provveduto, si consiglia di verificare la disponibilità di aggiornamenti di sicurezza per i prodotti in uso che utilizzano il protocollo HTTP/2.
In attesa di aggiornamenti specifici gli amministratori dovrebbero monitorare il traffico HTTP/2 ed applicare – in caso di inaspettati utilizzi eccessivi della memoria e/o della CPU dei web server e bilanciatori di carico applicativi – restrizioni selettive fino alla disabilitazione della specifica versione del protocollo se utile a ripristinare l’operatività.
Per avere maggiore visibilità degli eventi è possibile abilitare l’analisi avanzata dei frame (tipicamente disabilitata di default) e utilizzare strumenti aggiuntivi di analisi del traffico che, in caso di attacco, dovrebbe far emergere una inattesa rarità di END_HEADERS. L’utilizzo di tali modalità operative aumenta tipicamente il carico di lavoro del sistema, pertanto, se ne consiglia un utilizzo per il solo tempo limitato all’analisi e alla definizione di eventuali contromisure.
Riferimenti
https://kb.cert.org/vuls/id/421644
https://httpd.apache.org/security/vulnerabilities_24.html
https://github.com/apache/trafficserver/pull/11207
https://nodejs.org/en/blog/vulnerability/april-2024-security-releases/
https://github.com/nghttp2/nghttp2/security/advisories/GHSA-x6x3-gv8h-m57q
https://github.com/envoyproxy/envoy/security/advisories/GHSA-gghf-vfxp-799r
https://github.com/envoyproxy/envoy/security/advisories/GHSA-j654-3ccm-vfmm
https://github.com/tempesta-tech/tempesta/security/advisories/GHSA-3xwj-5ch3-q9p4
https://github.com/amphp/http/security/advisories/GHSA-qjfw-cvjf-f4fm
https://github.com/amphp/http-client/security/advisories/GHSA-w8gf-g2vq-j2f4
https://pkg.go.dev/vuln/GO-2024-2687
https://github.com/golang/go/issues/65051
1La presente stima è effettuata tenendo conto di diversi parametri, tra i quali: CVSS, disponibilità di patch/workaround e PoC, diffusione dei software/dispositivi interessati nella comunità di riferimento.