CVE-2023-23752: divulgazione di informazioni dall'API di Joomla 4, verifica e correzione
Ultimo aggiornamento:
Joomla da 4.0.0 a 4.2.7 controlla in modo errato l'accesso alla sua API dei web service: aggiungere public=true a una richiesta a /api/index.php/v1/… salta il controllo. L'exploit pubblico legge così la configurazione del sito, che comprende utente e password del database.
NVD le assegna 5.3, perché divulga solo informazioni. In pratica le credenziali trapelate aprono il database ovunque accetti connessioni remote, e gli attacchi sono partiti subito dopo la divulgazione. CISA l'ha aggiunta a KEV a gennaio 2024.
In sintesi
- CVE
- CVE-2023-23752
- Software
- Joomla! CMS
- Versioni colpite
- Da 4.0.0 a 4.2.7
- Corretta in
- 4.2.8
- Punteggio CVSS
- 5.3 Media (NVD, CVSS 3.1) ·
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - CISA Known Exploited Vulnerabilities
- Sì, aggiunta il 8 gennaio 2024
- Pubblicata da NVD
- 16 febbraio 2023
- Patch virtuale InfraFence
vp-cve-2023-23752(ModSecurity id 9920008)
Cosa è colpito
Joomla da 4.0.0 a 4.2.7. Joomla 3 non ha questa API e non è colpito da questa CVE (è fuori supporto da agosto 2023). La correzione è Joomla 4.2.8.
Verificare se un server è vulnerabile
Trova ogni Joomla sul server e stampane la versione:
sudo nice -n 19 ionice -c3 find / -xdev -path '*/libraries/src/Version.php' 2>/dev/null \
| while read -r f; do
echo "$f: $(grep -oE '(MAJOR|MINOR|PATCH)_VERSION = [0-9]+' "$f" | grep -oE '[0-9]+$' | paste -sd.)"
doneI tentativi sono richieste all'API con il parametro public:
sudo grep -rhiE '/api/index\.php/v1/[^ ]*[?&]public=' --include='*access*' --exclude='*.gz' /var/log/apache2 /var/log/httpd 2>/dev/null | tail -20Correggere
- Fai il backup dei file del sito e del database.
- Aggiorna Joomla dal pannello di amministrazione (System › Update › Joomla) a 4.2.8 o successiva, meglio l'ultima release di un ramo supportato.
- Se i log mostrano richieste riuscite (stato 200) con
public=true, considera note le credenziali inconfiguration.php: cambia la password del database (e aggiornaconfiguration.php), la password della posta e ogni altro segreto salvato lì. - Assicurati che il database non accetti connessioni da internet.
Come InfraFence la blocca mentre aggiorni
La patch virtuale per CVE-2023-23752 è una regola ModSecurity che blocca una richiesta a un percorso che contiene /api/index.php/v1/ quando la query string ha un parametro public. Le altre richieste all'API, con la loro normale autenticazione, passano.
Come viene applicata la patch
- L'agente annota quali porte SSH e quali siti rispondono.
- Scrive la regola (id ModSecurity 9920008) tra i propri marcatori nel suo file ModSecurity, esegue
apachectl configteste ricarica Apache in modo graceful. Se il test fallisce, rimette il file precedente. - Controlla che SSH e i siti rispondano ancora e, se non è così, rimuove la patch.
- Controlla che ModSecurity blocchi davvero con la regola, con una richiesta di prova locale innocua. Un ModSecurity in
DetectionOnlysi limita a registrare: la patch viene allora rimossa e segnalata come inefficace, mai come applicata.
Ogni richiesta bloccata dalla patch viene segnalata con CVE-2023-23752 (agente 1.0.37 o successivo): vedi i tentativi nell'attività del server e nella pagina Sfruttamento della dashboard, quindi sai che qualcuno sta provando la vulnerabilità contro di te.
Attenzione: Una patch virtuale blocca la forma nota dell'attacco nelle richieste che passano da Apache su quel server. Non sostituisce l'aggiornamento: installa la versione corretta, poi rimuovi la patch da Attività con Annulla se non ti serve più.
Le patch virtuali richiedono Apache con ModSecurity, l'impostazione Consenti modifiche alla configurazione del web server e nessun pannello di hosting o strumento di configuration management che gestisca il web server; fanno parte del piano Pro e di AutoMode. Le applica una persona a partire dall'analisi AI, oppure AutoMode. Vedi Patch virtuali.
Fonti
I dati di questa pagina vengono da queste fonti; controllale per eventuali aggiornamenti.
Provalo gratis su 1 server
Starter è gratuito per un server, con protezione completa e blocco automatico. Senza carta di credito.
Installa l'agent come root, con il tuo token al posto di <TOKEN>:
curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --token <TOKEN>Il token si crea nella dashboard, in Server › Aggiungi server.
