Apache Struts CVE-2016-3081: esecuzione di codice via DMI nel KEV
La CISA ha inserito nel catalogo KEV la CVE-2016-3081 di Apache Struts: con DMI attivo permette di eseguire codice da remoto. Versioni, rischi e cosa fare.

L’8 ottobre 2026 la CISA ha aggiunto al catalogo Known Exploited Vulnerabilities (KEV) la CVE-2016-3081, una vulnerabilità di Apache Struts 2, il framework Java per applicazioni web. Quando la funzione Dynamic Method Invocation (DMI) è attiva, un attaccante remoto, senza autenticazione, può eseguire codice arbitrario sul server attraverso il prefisso method: nelle richieste.
La vulnerabilità non è nuova: è stata pubblicata ad aprile 2016. Il catalogo KEV, però, raccoglie le vulnerabilità di cui la CISA ha prove di sfruttamento attivo. L’ingresso nel catalogo è quindi un segnale concreto per chi ha ancora in produzione applicazioni Struts mai aggiornate.
Cosa è successo
La CISA ha inserito la CVE-2016-3081 nel KEV come “Apache Struts Command Injection Vulnerability” e ha fissato all’11 ottobre 2026 la scadenza per le agenzie federali statunitensi: tre giorni, un termine molto breve. Nel catalogo l’uso in campagne ransomware è indicato come “sconosciuto”.
L’avviso chiede di applicare le mitigazioni secondo le istruzioni del produttore, nel rispetto della direttiva BOD 26-04 sulla priorità degli aggiornamenti in base al rischio e dei requisiti di triage forense della CISA. Se le mitigazioni non sono disponibili, il prodotto va dismesso. L’avviso chiede anche di valutare l’esposizione su Internet di ogni sistema.
La CISA non fornisce dettagli sugli attacchi osservati, sugli autori o sulle vittime.
Dettagli tecnici
- CVE: CVE-2016-3081, pubblicata il 26 aprile 2016. La scheda NVD è stata aggiornata il 9 ottobre 2026.
- Versioni colpite, secondo la descrizione: Apache Struts da 2.3.19 a 2.3.20.2, da 2.3.21 a 2.3.24.1 e da 2.3.25 a 2.3.28, solo quando Dynamic Method Invocation è attivo.
- Configurazioni CPE: l’elenco della scheda NVD comprende invece versioni dei rami 2.0, 2.1, 2.2 e 2.3, dalla 2.0.0 alla 2.3.14. Le due indicazioni non coincidono: conviene considerare a rischio qualsiasi Struts 2 di quell’epoca finché il bollettino del produttore non dice il contrario.
- Vettore: rete, con richieste HTTP che usano il prefisso
method:, legato alle espressioni concatenate (chained expressions). Il risultato è l’esecuzione di codice con i privilegi dell’applicazione web. - Gravità: CVSS 3.1 8.1 (alta),
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H. L’attacco avviene in rete, non richiede privilegi né interazione dell’utente e colpisce riservatezza, integrità e disponibilità; la complessità è classificata come alta. CVSS 2: 9.3 (alta). - Debolezza: CWE-77 (command injection).
- Bollettino del produttore: la scheda NVD rimanda al bollettino S2-032 di Apache Struts, indicato come avviso del produttore e correzione.
- Codice pubblico: tra i riferimenti della scheda NVD compaiono una pagina di Packet Storm intitolata “Apache Struts 2.3.28 Dynamic Method Invocation Remote Code Execution”, una voce di Exploit-DB e due moduli di exploit catalogati da Rapid7 (
struts_dmi_exec). - Prodotti di terze parti: la scheda NVD elenca anche gli avvisi di Oracle (Critical Patch Update di luglio e ottobre 2016) e di Huawei. Struts è quindi incluso anche in prodotti di altri fornitori, che hanno pubblicato correzioni proprie.
- MITRE ATT&CK: T1190 (Exploit Public-Facing Application).
Impatto per le aziende europee e italiane
Struts 2 è stato per anni una scelta comune per le applicazioni web Java: portali, gestionali, servizi interni sviluppati su misura. Molte di queste applicazioni restano in produzione a lungo, spesso con le librerie del giorno in cui sono state consegnate. Il framework, inoltre, può essere incluso in prodotti di terze parti senza che sia evidente, come mostrano gli avvisi di Oracle e Huawei.
L’esecuzione di codice sul server dell’applicazione è un punto d’ingresso completo: da lì un attaccante può leggere i dati gestiti dall’applicazione, le credenziali di accesso ai database e muoversi verso il resto della rete.
Per i soggetti NIS2, la gestione delle vulnerabilità e la sicurezza delle applicazioni rientrano tra le misure richieste dalla direttiva. Una compromissione che passa da un’applicazione esposta può diventare un incidente da valutare per la notifica al CSIRT nazionale, che in Italia è lo CSIRT Italia dell’ACN.
Cosa fare subito
- Fai l’inventario: individua le applicazioni web Java che includono Struts 2, comprese quelle sviluppate su misura, quelle di fornitori e i prodotti di terze parti. Cerca le librerie di Struts negli archivi delle applicazioni distribuite sui server.
- Verifica versioni e configurazione: secondo la descrizione, le installazioni colpite sono quelle nelle versioni indicate con Dynamic Method Invocation attivo. Controlla la configurazione di ogni applicazione e tieni conto della divergenza con l’elenco CPE.
- Aggiorna o mitiga: applica le correzioni e le indicazioni del bollettino S2-032 di Apache Struts. Se trovi ancora rami di Struts di quell’epoca, valuta il passaggio a una versione ancora supportata dal produttore.
- Per i prodotti di terze parti, segui il bollettino del fornitore. Se non esiste una correzione, la CISA indica di dismettere il prodotto.
- Riduci l’esposizione: verifica quali applicazioni Struts sono raggiungibili da Internet e se è davvero necessario.
- Rileva: cerca nei log del server web e dell’applicazione le richieste con parametri che iniziano con
method:. Per le applicazioni rimaste esposte e vulnerabili, avvia un triage forense del server, come chiede la CISA.
Come aiuta ARXDOME
ARX Shield mostra le vulnerabilità aperte per macchina e per pacchetto e mette in evidenza quelle già sfruttate dagli attaccanti, come le CVE del catalogo KEV. ARX Expose controlla i servizi che la tua azienda espone su Internet e le vulnerabilità note dei prodotti riconosciuti. ARX Sentry raccoglie log ed eventi dai server, e ARX Trace aiuta il triage con le raccolte di artefatti e le modifiche ai file delle macchine sospette.
Ultimo aggiornamento:


