
IBM WebSphere deserializzazione di dati non attendibili - IBM WebSphere 7,8,8.5,9
IBM WebSphere deserializzazione di dati non affidabili - IBM WebSphere 7,8,8.5,9
Titolo: IBM WebSphere deserializzazione di dati non affidabili
Applicazione: IBM WebSphere 7,8,8.5,9
Descrizione: Il server applicativo deserializza dati non affidabili quando il
cookie WASPostParam è presente. Ciò può portare a un DoS tramite
esaurimento delle risorse e potenzialmente all'esecuzione remota di codice.
Autori: Federico Dotta <[email protected]>
Maurizio Agazzini <[email protected]>
Stato fornitore: Risolto (PI62375)
Candidato CVE: Il progetto Common Vulnerabilities and Exposures ha assegnato
il nome CVE-2016-5983 a questo problema.
Riferimenti: http://lab.mediaservice.net/advisory/2016-02-websphere.txt
http://lab.mediaservice.net/code/websphere_payload.zip
http://www-01.ibm.com/support/docview.wss?uid=swg21990060
Quando si utilizza l'autenticazione con modulo personalizzato, IBM WebSphere imposta automaticamente i cookie WASPostParam e WASReqURL quando il cookie di sessione LtpaToken2 non è valido. I dati contenuti in questi cookie vengono utilizzati quando l'utente effettua nuovamente l'accesso per recuperare l'ultima pagina visitata e i relativi parametri.
Il cookie WASPostParam è un oggetto Java serializzato che viene deserializzato senza controllare il tipo dell'oggetto. Questo comportamento può essere sfruttato per causare un denial of service e potenzialmente eseguire codice arbitrario.
Gli oggetti che possono causare il DoS si basano su payload noti divulgati presi da:
Attualmente non esiste una catena nota che consenta l'esecuzione di codice su IBM WebSphere, tuttavia ogni giorno vengono scoperte nuove catene.
L'attacco può essere riprodotto come segue:
creare un'applicazione con autenticazione tramite modulo personalizzato
dopo il login dell'utente, il token LtpaToken2 viene impostato dal server applicativo
effettuare una richiesta HTTP GET che contenga il cookie WASPostParam con uno dei seguenti contenuti:
01_BigString_limited_base64.txt: si tratta di un oggetto stringa; il server risponderà in modo normale (dimensione dell'oggetto simile al successivo).
02_SerialDOS_limited_base64.txt: il server applicativo richiederà circa 2 minuti per eseguire la richiesta con un utilizzo della CPU al 100%.
03_BigString_base64.txt si tratta di un oggetto stringa; il server risponderà in modo normale (dimensione dell'oggetto simile al successivo).
04_SerialDOS_base64.txt: il server applicativo richiederà un tempo sconosciuto per eseguire la richiesta con un utilizzo della CPU al 100%.
Questa vulnerabilità interessa le seguenti versioni e release di IBM WebSphere Application Server e versioni precedenti:
Liberty 16.0.0.2
9.0.0.1
8.5.5.10
8.0.0.12
7.0.0.41
Applicare la correzione provvisoria PI62375
http://www-01.ibm.com/support/docview.wss?uid=swg24042712
Prova di concetto.
Cronologia
20/08/2016 - Prima comunicazione inviata a IBM PSIRT (psirt at us.ibm.com)
22/08/2016 - Risposta IBM, PSIRT Advisory 6345 assegnato al bug
05/10/2016 - Comunicazione da IBM con informazioni sulla correzione (PI62375)
07/10/2016 - Pubblicato l'Advisory di sicurezza