Nel corso di un penetration test condotto su un’istanza PaaS OAC, il team di Yoroi – Tinexta Cyber ha identificato quattro vulnerabilità che espongono Oracle BI Publisher a rischio di esecuzione di codice remoto.
Ecco le quattro falle in esame:
- Authentication bypass in XMLService.
- Esecuzione di codice remoto tramite iniezione di ScriptEngine.
- Cross-Site Scripting basato su Dom.
- Falsificazione non autenticata delle richieste lato server (SSRF).
Questi impatti delle CVE (qui e qui i bollettini di sicurezza) risultano essere critici, in quanto un attore non autenticato senza la necessità di autenticazione preliminare è in grado di aggirare l’autenticazione ed eseguire codice remoto sul server ospitante l’istanza di Oracle BI Publisher di Oracle Analytics.
Indice degli argomenti
Vulnerabilità in Oracle BI Publisher: i dettagli
Attraverso lo sfruttamento del WebService XMLPservice, un utente non autenticato con accesso alla rete tramite HTTP può compromettere Oracle BI Publisher.
La vulnerabilità consente di acquisire token di sessione degli utenti di BI Publisher, esclusivamente attraverso il loro indirizzo email. Ciò comporta la possibilità di assumere il controllo del sistema, guadagnando anche, potenzialmente, privilegi amministrativi.
L’acquisizione dei token di sessione ha un impatto diretto non solo sulla riservatezza, l’integrità e la disponibilità dei dati, ma espone anche al rischio di esecuzione di comandi remoti sul server tramite la vulnerabilità identificata come CVE-2024-21083.
Gli errori di identificazione e autenticazione A07
Gli errori di identificazione e autenticazione A07 possono verificarsi quando le funzioni relative all’identità, all’autenticazione o alla gestione delle sessioni utente non sono implementate correttamente o non sono adeguatamente protette da un’applicazione.
Gli aggressori possono sfruttare questi errori compromettendo password, chiavi, token di sessione o sfruttando altri difetti di implementazione per assumere l’identità di altri utenti, temporaneamente o permanentemente.
- I punti deboli nell’autenticazione sono presenti se l’applicazione rientra nei seguenti otto casi:
- consente attacchi automatici come il credential stuffing, in cui l’attaccante dispone di un elenco di nomi utente e password validi;
- permette la forza bruta od altri attacchi automatici;
- accetta password predefinite, deboli o note, come “Password1” o “admin/admin”;
- utilizza processi di recupero delle credenziali deboli o inefficaci e password dimenticate, come le “risposte basate sulla conoscenza”, che non possono essere rese sicure;
- espone il token di sessione nell’URL;
- riutilizza il token di sessione dopo un accesso riuscito;
- non invalida correttamente gli ID di sessione: le sessioni degli utenti o i token di autenticazione (soprattutto i token Single Sign-On, SSO) non vengono invalidati correttamente durante il logout o un periodo di inattività;
- fornisce token di sessione alle richieste HTTP non autenticate o con autenticazione parziale.
I dettagli della vulnerabilità CVE-2024-21083
Attraverso lo sfruttamento del web service PluginService, un utente di BI Publisher con privilegi elevati può eseguire codice remoto sull’istanza del server ospitante, sfruttando il componente ScriptEngine del pacchetto javax.script.
Ciò avviene a causa di una mancata convalida dell’input dell’utente e di un sistema di sandboxing mancante durante la valutazione del codice, in grado di consentire l’esecuzione di codice Java arbitrario.
L’iniezione di codice A03 può verificarsi quando un input non attendibile viene iniettato nel codice costruito dinamicamente. Una fonte di potenziali vulnerabilità è l’uso di JavaScript dal codice Java. Il pacchetto javax.script è costituito da interfacce e classi che definiscono i motori di scripting Java e da un framework per l’utilizzo di tali interfacce e classi nel codice Java.
L’uso improprio dell’API javax.script consente a un malintenzionato di eseguire codice arbitrario sul sistema di destinazione.
L’API ScriptEngine è disponibile dal rilascio di Java 6. Permette alle applicazioni di interagire con gli script. Consente alle applicazioni di interagire con gli script. Nel caso in cui l’utente riesca a controllare una parte o la totalità della valutazione dello script, può interagire completamente con la JVM (per impostazione predefinita).
I dettagli della vulnerabilità CVE-2024-21084
Durante l’analisi è stata rilevata una vulnerabilità di tipo blind server-side request forgerynon autenticata sui WebService replytoXML e replyToXMLWithContext.
In questo caso, un utente non autenticato può indurre il server a eseguire richieste utilizzando vari protocolli, tra cui ftp:// , http:// e file://, mirando a server o risorse interne ed esterne. Sebbene questa falla possa avere un impatto limitato su Oracle BI Publisher stesso, potrebbe avere gravi conseguenze su altri prodotti, alterando la portata del rischio.
In un attacco Server-Side Request Forgery (SSRF), un aggressore sfrutta le funzionalità del server per accedere e manipolare le risorse interne. Ciò avviene fornendo o alterando un URL, che il codice del server interpreta per leggere o inviare dati.
Selezionando meticolosamente questi URL, l’aggressore può potenzialmente accedere a informazioni sensibili, stabilire connessioni con servizi interni o eseguire richieste POST verso servizi interni che non sono destinati all’esposizione all’esterno.
Questo tipo di attacco rappresenta una minaccia significativa per la sicurezza dei server, in quanto consente l’accesso non autorizzato e la manipolazione di funzionalità critiche sul lato server. Questi tipi di attacchi possono coinvolgere l’uso di vari protocolli come ftp://, http://, file://, gopher:// e altri ancora, ampliando la gamma di potenziali vulnerabilità e amplificando la minaccia alla sicurezza del server.
Come tutelarsi
Per mitigare il rischio delle vulnerabilità analizzate, si consiglia di aggiornare i prodotti vulnerabili seguendo le istruzioni fornite all’interno della Critical Patch Update (CPU) di aprile.
Le istanze ad oggi esposte su internet risultano essere svariate e identificabili facilmente anche mediante delle semplici ricerche su Google, tramite Google Dorks.
Si raccomanda pertanto di seguire le linee guida rilasciate da Oracle all’interno della Critical Patch Update di aprile, aggiornando quanto prima i sistemi.