InfraFenceInfraFence

Live Security Operations

Inizia

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:

Qualsiasi distribuzione Linux
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.)"
    done

I tentativi sono richieste all'API con il parametro public:

Log di accesso di Apache
sudo grep -rhiE '/api/index\.php/v1/[^ ]*[?&]public=' --include='*access*' --exclude='*.gz' /var/log/apache2 /var/log/httpd 2>/dev/null | tail -20

Correggere

  1. Fai il backup dei file del sito e del database.
  2. Aggiorna Joomla dal pannello di amministrazione (System › Update › Joomla) a 4.2.8 o successiva, meglio l'ultima release di un ramo supportato.
  3. Se i log mostrano richieste riuscite (stato 200) con public=true, considera note le credenziali in configuration.php: cambia la password del database (e aggiorna configuration.php), la password della posta e ogni altro segreto salvato lì.
  4. 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

  1. L'agente annota quali porte SSH e quali siti rispondono.
  2. Scrive la regola (id ModSecurity 9920008) tra i propri marcatori nel suo file ModSecurity, esegue apachectl configtest e ricarica Apache in modo graceful. Se il test fallisce, rimette il file precedente.
  3. Controlla che SSH e i siti rispondano ancora e, se non è così, rimuove la patch.
  4. Controlla che ModSecurity blocchi davvero con la regola, con una richiesta di prova locale innocua. Un ModSecurity in DetectionOnly si 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.