CVE-2025-1094 è una grave vulnerabilità di tipo SQL injection scoperta da Rapid7, che interessa tutte le versioni supportate di PostgreSQL precedenti alle versioni 17.3, 16.7, 15.11, 14.16 e 13.19. La vulnerabilità è stata individuata durante l’analisi di un attacco che sfruttava CVE-2024-12356, una falla di tipo esecuzione di codice remoto (RCE) non autenticata nei prodotti BeyondTrust. In tutti i casi testati, lo sfruttamento con successo di CVE-2024-12356 richiedeva prima lo sfruttamento di CVE-2025-1094 per ottenere l’esecuzione di codice.
Con un punteggio CVSS di 8.1 (Alto), questa vulnerabilità deriva da difetti nel tool psql di PostgreSQL, che permettono a un attaccante di iniettare comandi SQL tramite input appositamente manipolati. Questo problema è rimasto uno zero-day fino alla divulgazione da parte di Rapid7.
| Data | 2025-02-20 16:22:45 |
| Informazioni | Trending, Fix Available |
Riassunto tecnico
CVE-2025-1094 è causata da un’errata assunzione riguardo alla sicurezza dell’input passato attraverso le routine di escaping delle stringhe di PostgreSQL. Queste routine sono progettate per gestire input non attendibili all’interno delle query SQL, ma un attaccante può aggirare queste protezioni in specifici scenari in cui caratteri UTF-8 non validi vengono elaborati in modo errato dallo strumento psql.
La vulnerabilità si verifica quando lo strumento psql esegue una istruzione SQL contenente input non attendibile escapato che include sequenze di byte non valide, portando a un’iniezione SQL riuscita. Se un attaccante riesce a iniettare comandi SQL, può intensificare l’attacco eseguendo meta-comandi tramite psql, che consentono l’esecuzione di comandi della shell sul sistema operativo sottostante.
In alternativa, gli attaccanti possono eseguire comandi SQL arbitrari e controllati dall’attaccante direttamente nel database PostgreSQL, con il potenziale di compromettere ulteriormente il sistema, inclusa l’esfiltrazione di dati, la manipolazione di dati o la compromissione del sistema.
Scenari di sfruttamento:
-
SQL Injection
Gli attaccanti possono iniettare codice SQL arbitrario attraverso psql, bypassando le protezioni di escaping. Questo può consentire l’accesso non autorizzato a dati sensibili o la manipolazione delle operazioni del database. -
Esecuzione Arbitraria di Codice tramite Meta-comandi
Lo sfruttamento dell’iniezione SQL consente agli attaccanti di utilizzare i meta-comandi dipsql, che eseguono comandi della shell del sistema operativo. Questo può portare al pieno controllo del sistema interessato, inclusa la possibilità di eseguire comandi arbitrari con privilegi del sistema operativo.
Raccomandazioni
- Aggiornare PostgreSQL
Gli utenti dovrebbero aggiornare immediatamente a PostgreSQL 17.3, 16.7, 15.11, 14.16 o 13.19, che risolvono la vulnerabilità di SQL injection e garantiscono la protezione del sistema dallo sfruttamento.
- Verificare e Monitorare le Query SQL
- Implementare misure di sicurezza aggiuntive come la validazione dell’input e le query parametrizzate per prevenire ulteriori vulnerabilità di SQL injection.
- Rivedere l’uso dei meta-comandi all’interno dello strumento interattivo di PostgreSQL (
psql) per limitare la possibilità che utenti non attendibili possano eseguire comandi della shell arbitrari.
- Limitare l’accesso a psql
Limitare l’accesso a psql solo agli amministratori fidati, e disabilitare l’esecuzione interattiva di comandi shell per gli utenti regolari, se possibile.