CVE-2017-1000353 – Esecuzione di Codice Remota non Autenticata (RCE) – Jenkins

Jenkins è un server di automazione open-source ampiamente utilizzato per pipeline di integrazione e distribuzione continua (CI/CD), supportando la compilazione, il testing e il deployment del software su diverse piattaforme.
Divulgata nell’aprile 2017, CVE-2017-1000353 è una vulnerabilità critica di deserializzazione che permetteva agli aggressori di eseguire codice arbitrario da remoto senza autenticazione.
La vulnerabilità interessa le main line releases di Jenkins fino alla versione 2.56 inclusa e le LTS releases di Jenkins fino alla 2.46.1 inclusa.

Prodotto Jenkins
Data 2025-10-07 12:41:25

Riassunto tecnico

La vulnerabilità deriva da una deserializzazione Java non sicura nella funzionalità di remoting della CLI (Command Line Interface) di Jenkins. In particolare, il bug risiede nella funzione readFrom all’interno di Command.java, dove Jenkins deserializza dati controllati dall’utente, provenienti da un’istanza di ObjectInputStream.

Il problema principale è che gli aggressori possono trasferire un oggetto Java serializzato SignedObject alla CLI di Jenkins basata su remoting, che verrà quindi deserializzato tramite un nuovo ObjectInputStream, eludendo il meccanismo di protezione basato su blocklist.

Poiché la blocklist esistente in Jenkins non includeva SignedObject, la sua deserializzazione innescava la deserializzazione del contenuto incapsulato;

Lo scenario di attacco avrebbe questo aspetto:
Gli aggressori inviano due richieste HTTP:

  • La prima richiesta stabilisce una sessione CLI Jenkins valida con due canali (upload/download);
  • La seconda richiesta carica un SignedObject contenente un oggetto Java serializzato malevolo;
    La funzione readFrom deserializza il SignedObject;
    Il contenuto incapsulato del SignedObject viene quindi deserializzato, eludendo la blocklist;
    Catene di gadget malevoli si attivano durante la deserializzazione ed eseguono codice arbitrario con i privilegi del server Jenkins.

Raccomandazioni

  1. Applicare la patch immediatamente: Aggiornare tutte le istanze di Jenkins alla versione 2.57 (weekly) o 2.46.2 LTS.
  2. Disabilitare la CLI basata su remoting: Dopo l’aggiornamento, gli utenti dovrebbero disabilitare la CLI basata su remoting e passare ad altre modalità (HTTP o SSH).
  3. Ricerca e monitoraggio: Implementare regole WAF per rilevare firme di attacchi di deserializzazione Java e rivedere i log di accesso Jenkins alla ricerca di pattern sospetti nella creazione di sessioni CLI.

Vuoi garantire la massima sicurezza informatica alla tua azienda? ISGroup SRL è qui per aiutarti con soluzioni di cyber security su misura per la tua azienda.

Vuoi che gestiamo tutto noi per te? Il servizi di Virtual CISO e di gestione delle vulnerabilità sono perfetti per la tua organizzazione.

Hai già le idee chiare su quello che ti serve? Esplora i nostri servizi di:

E molto altro. Proteggi la tua azienda con i migliori esperti di cybersecurity!