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.

Fonte