Apache HTTP Server CVE-2026-119618: RCE critica in mod_http2
Apache HTTP Server CVE-2026-119618 è una RCE non autenticata CVSS 9.8 in mod_http2, solo su HTTP/2. Aggiorna a 2.4.71 — trovata da AI Anthropic e Google.
Pubblicato da Zero Hunt, un red team AI autonomo su un'appliance on-premise con AI privata: penetration test automatizzato per reti e infrastrutture, in black box o gray box, con una persona che approva ogni passo che conta.
Apache HTTP Server — il web server più diffuso di internet — ha una vulnerabilità critica di esecuzione di codice remoto, non autenticata, nel suo motore HTTP/2. CVE-2026-119618 è una race condition nella funzione assign_headers() del modulo mod_http2: un attaccante può portarla a corruzione dell'heap e, da lì, all'esecuzione di codice con i privilegi del processo del web server. Red Hat l'ha valutata CVSS 9.8. Colpisce Apache HTTP Server dalla 2.4.55 alla 2.4.70 ed è corretta nella 2.4.71, rilasciata l'11 novembre. Non ci sono ancora segnalazioni di sfruttamento in the wild — ma il modo in cui è stata trovata è la notizia: Apache ha accreditato la segnalazione all'OSS Scanner di Anthropic il 26 ottobre, e il team Vulnerability Research di Google Cloud ha trovato lo stesso bug in modo indipendente una settimana dopo.
Notizia in evoluzione — pubblicata alle 16:48 (15:48 UTC) del 12 novembre 2026. Aggiornata man mano che vendor e CISA pubblicano.
In breve
| CVE | CVE-2026-119618 |
| Prodotto / versioni colpite | Apache HTTP Server dalla 2.4.55 alla 2.4.70 (solo con HTTP/2 attivo); modulo standalone mod_h2 di GitHub dalla 2.0.8 alla 2.0.42 |
| Corretta in | Apache HTTP Server 2.4.71 (rilasciata il 2026-11-11); modulo mod_h2 secondo l'advisory su GitHub; oppure il pacchetto httpd con la patch backport della tua distribuzione |
| CVSS | 9.8 Critica · CVSS 3.1 · assegnata da Red Hat · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H · record NVD ancora in stato "Received", non ancora valutato |
| Sfruttata attivamente | Nessuna segnalazione al 2026-11-12 (Wiz); Red Hat segnala che la ricerca pubblica ha dimostrato un exploit affidabile contro un server con configurazione di default e mod_http2 attivo |
| CISA KEV | Non presente (catalogo versione 2026.11.10) |
| PoC pubblico | È pubblica una PoC che provoca solo crash (riproduce corruzione di memoria e il crash del processo Apache, non la RCE completa, secondo SecurityWeek) |
| Advisory ufficiale | Advisory di sicurezza Apache httpd (vulnerabilities_24) |
Che cos'è davvero CVE-2026-119618
Il difetto è una race condition di esecuzione concorrente (CWE-362) in mod_http2, il modulo che implementa HTTP/2 per Apache. Dentro assign_headers(), una risorsa condivisa viene usata da thread concorrenti senza la sincronizzazione necessaria a renderne sicuro l'accesso. HTTP/2 multiplexa molti stream su una sola connessione, e un attaccante che controlla il timing e la forma di quegli stream può vincere la race, corrompere l'heap e — la parte difficile, che secondo il vendor è stata dimostrata — indirizzare quella corruzione verso l'esecuzione di codice fornito dall'attaccante. Nessuna credenziale, nessuna interazione dell'utente, nulla se non la raggiungibilità di un endpoint HTTP/2.
La condizione di ambito è l'unica buona notizia, ed è decisiva:
"Solo i server con HTTP/2 attivo sono vulnerabili; i server configurati per servire esclusivamente HTTP/1.1 non lo sono." — advisory di Red Hat.
HTTP/2 è attivo quando mod_http2 è caricato e compare h2 (su TLS) o h2c (in chiaro) nella direttiva Protocols. È una configurazione estremamente comune — la maggior parte dei front end Apache che terminano TLS ha attivato HTTP/2 anni fa per le prestazioni — ma un server bloccato su HTTP/1.1 è completamente fuori ambito. Questo stesso fatto è anche il tuo controllo compensativo più rapido, ed è il motivo per cui apre la sezione di remediation qui sotto.
Una sfumatura utile se usi Red Hat: su RHEL 9 e RHEL 10, mod_http2 alloca ogni stream da un allocatore separato, cosa che secondo Red Hat rende lo sfruttamento sensibilmente più difficile ed è il motivo per cui le valuta Important e non Critical. RHEL 8 e versioni precedenti non sono colpite. Questo non cambia l'istruzione — aggiornare — ma ti dice dove collocare un dato host nell'ordine di priorità.
Trovata da uno scanner AI, poi da un team umano
Per una volta il merito della scoperta è il titolo, non una nota a piè di pagina. L'advisory di Apache elenca due scopritori indipendenti della stessa race condition: l'OSS Scanner di Anthropic — un sistema automatico che analizza il codice open source — l'ha registrata come vulnerabilità ANT-2026-MAPKT6MZ e segnalata il 2026-10-26; Anthony Weems e Simon Scannell del Google Cloud Vulnerability Research l'hanno segnalata in modo indipendente il 2026-11-03. Una macchina ha trovato un bug di memory safety in una delle basi di codice C più riviste al mondo, in percorsi presenti in produzione dalla 2.4.55, e un team di ricerca umano di primo livello è arrivato allo stesso bug una settimana dopo.
È questa convergenza la parte che i difensori devono interiorizzare. L'economia della scoperta di bug come questo sta cambiando: l'analisi automatica del codice oggi fa emergere vulnerabilità reali, critiche e pre-divulgazione in software che tutti usano, a una cadenza e a una scala che nessuna revisione manuale eguaglia. L'immagine speculare sul fronte difensivo è scomoda — la stessa classe di strumenti che ha trovato CVE-2026-119618 in modo responsabile è a disposizione anche di chi un advisory non lo pubblicherà. "Rivisto per decenni" non è più un motivo per dare per scontato che una base di codice sia pulita.
I miei server sono colpiti?
A deciderlo sono due controlli. Prima la versione:
# Famiglia Red Hat / RPM
httpd -v
# Famiglia Debian / Ubuntu
apache2 -v
Se riporta Apache/2.4.55 fino alla 2.4.70, la build è nell'intervallo. Poi verifica che HTTP/2 sia davvero attivo — un server 2.4.70 con HTTP/2 disattivato non è vulnerabile:
# mod_http2 è caricato?
httpd -M 2>/dev/null | grep -i http2 # oppure: apache2ctl -M | grep -i http2
# c'è h2/h2c nella direttiva Protocols?
grep -rniE '^[[:space:]]*Protocols' /etc/httpd /etc/apache2 2>/dev/null
Se mod_http2 è caricato e Protocols elenca h2 o h2c, sei esposto: un'istanza esposta su internet è la prima cosa da correggere stasera.
Remediation
1. Sono colpito?
Esegui i due controlli qui sopra su ogni istanza Apache — la build realmente in esecuzione dopo l'ultima finestra di manutenzione, non quella che pensi di aver installato. Inventaria prima le istanze esposte su internet (qualsiasi cosa risponda su 443/80 al perimetro: reverse proxy, back end dietro i load balancer, console web di apparati che integrano httpd), poi quelle interne. Qualsiasi build 2.4.55–2.4.70 con mod_http2 caricato e h2/h2c attivi è in ambito.
2. Applica la patch — la versione corretta esatta
Aggiorna ad Apache HTTP Server 2.4.71 (rilasciata il 2026-11-11), oppure installa il pacchetto httpd/apache2 con la patch backport della tua distribuzione — Red Hat, AlmaLinux, Gentoo, Microsoft Azure Linux e altri hanno rilasciato aggiornamenti tracciati. Se compili il modulo standalone mod_h2 da GitHub, esci dall'intervallo 2.0.8–2.0.42 secondo l'advisory del modulo. Riavvia il servizio dopo l'aggiornamento e verifica la versione in esecuzione: un pacchetto installato ma non ricaricato sta ancora servendo il codice vulnerabile.
3. Non puoi aggiornare subito? Controlli compensativi
- Spegni HTTP/2. È lo stopgap di maggior valore e rimuove del tutto il percorso di codice vulnerabile. Imposta
Protocols http/1.1nella configurazione del server/vhost, rimuovi eventuali tokenh2eh2ce ricarica. I client ricadono su HTTP/1.1 in modo trasparente: perdi un po' di prestazioni, non la disponibilità. - Oppure scarica il modulo. Dove HTTP/2 non serve, disabilita del tutto
mod_http2(a2dismod http2su Debian/Ubuntu, o commenta la rigaLoadModule http2_modulesui sistemi RPM) e ricarica. - Limita l'esposizione. Per un'istanza che deve mantenere HTTP/2, restringi chi può raggiungerla (allowlist, VPN, WAF davanti) mentre pianifichi la patch. Riduce la platea di attaccanti; non sostituisce la correzione.
4. Caccia alla compromissione
Non sono stati pubblicati IOC da vendor o ricercatori, quindi caccia sui comportamenti, non sugli indicatori — e non inventare IOC. Segnali generalizzabili per una RCE da corruzione di memoria in un web server (mappati su MITRE ATT&CK):
- Crash/segfault ripetuti dei worker attribuiti a
mod_http2nell'error log o nel dmesg del kernel. La PoC pubblica provoca solo crash, quindi una raffica di segfault dei worker HTTP/2 può segnalare una ricognizione o un tentativo in corso, ancora prima che venga eseguito del codice (T1190 Exploit Public-Facing Application). - Processi figli generati dall'account di servizio di Apache (
apache,www-data,httpd) — shell, interpreti o strumenti di rete lanciati dal web server non hanno motivo di esistere (T1059 Command and Scripting Interpreter). - File nuovi o modificati sotto la document root o le directory cgi — una web shell lasciata per la persistenza (T1505.003 Web Shell).
- Connessioni in uscita anomale dall'host web verso destinazioni mai viste — il download di uno strumento, un beacon, o lo staging ed esfiltrazione di dati (T1041 Exfiltration Over C2 Channel).
5. Bonifica e verifica
Se trovi un impianto, rimuovere il file non basta: ricostruisci da un'immagine nota e integra dove possibile, e ruota ogni segreto che l'host web poteva leggere — prima le chiavi private TLS del server, poi eventuali credenziali di database applicativo, token API o chiavi di service account presenti su quell'host. Invalida le sessioni attive. Poi conferma la correzione dopo la patch: riprova che l'endpoint HTTP/2 non vada più in crash né in corruzione nella condizione che ha dimostrato il problema, anziché fidarti della sola stringa di versione.
Cosa non si sa ancora
- Valutazione NVD. Il record NVD è ancora in stato "Received" senza CVSS assegnato; il 9.8 qui sopra è il punteggio di Red Hat. Seguiranno l'analisi NVD completa ed eventuale decisione SSVC di CISA.
- RCE weaponizzata. Red Hat afferma che la ricerca pubblica ha dimostrato un exploit affidabile contro un server con configurazione di default, ma l'unica PoC pubblica finora produce crash, non esecuzione di codice confermata. Il divario tra "crash affidabile" e "RCE affidabile" su questo bug non è ancora pubblico — e tende a chiudersi in pochi giorni dalla patch, tramite diffing.
- Attività in the wild. Nessuno sfruttamento è stato segnalato al momento, e la CVE non è in CISA KEV. La platea esposta è abbastanza ampia da poter cambiare in fretta.
Aggiorna, o spegni HTTP/2 — e non tirare a indovinare quali host sono davvero raggiungibili
La decisione che un operatore affronta stasera è concreta: aggiornare a 2.4.71 su tutto il parco macchine, o disattivare HTTP/2 come misura ponte sulle istanze che non puoi toccare subito — e in quale ordine. È proprio quella domanda sull'ordine a far sì che la maggior parte dei team o congeli l'intero patrimonio in un colpo solo o rimandi in silenzio, e sono entrambe scommesse. L'AI Remediation Advisor di Zero Hunt ordina la correzione per sfruttabilità reale — prima lo stato CISA KEV (qui: non presente), poi ciò che è stato dimostrato raggiungibile nel tuo ambiente, poi CVSS ed EPSS — e ti consegna l'azione esatta per ogni host: aggiorna a 2.4.71 con le note di rollback dove è pulito, o la precisa modifica ponte Protocols http/1.1 dove la finestra di manutenzione è a giorni di distanza, poi riverifica che il percorso HTTP/2 non sia più corrompibile.
E poiché questo bug è stato trovato da una macchina che legge il codice sorgente, la risposta onesta a "il mio front end 2.4.70 è davvero portabile all'esecuzione di codice, o va solo in crash?" non è una ricerca di versione — è la domanda per cui è stato costruito l'autonomous AI red team di Zero Hunt. In esecuzione su un apparato on-premise con i propri modelli privati e con un human in the loop, lo swarm di 10 agenti identifica la build Apache esatta e la configurazione HTTP/2 sul tuo perimetro e, in un container effimero e temprato che non tocca mai l'host, lavora una proof-of-concept finché raggiunge dimostrabilmente l'esecuzione di codice o dimostrabilmente non può — così aggiorni per primi gli host realmente esposti invece di trattare una PoC che fa solo crash e una RCE funzionante come la stessa emergenza. È la differenza tra un penetration test automatico e continuo che tiene il passo con divulgazioni come questa e il report annuale che nomina il bug con un anno di ritardo.
Tutte le vulnerabilità che CISA segnala come sfruttate, con le scadenze federali: tracker CISA KEV →
Una patch per ogni CVE? Un programma CTEM verifica quali esposizioni sono davvero sfruttabili prima del prossimo advisory: cos'è il CTEM →
È sfruttabile nel tuo ambiente?
Zero Hunt lo verifica sulla tua rete: un red team AI autonomo su un'appliance on-premise, con AI privata, in black box o gray box e con una persona che approva ogni passo che conta. La prova di cosa è sfruttabile, la correzione e le evidenze firmate — nessun dato esce dal tuo perimetro.