CVE-2023-23752: divulgación de información en la API de Joomla 4, comprobar y corregir
Última actualización:
Joomla 4.0.0 a 4.2.7 comprueba mal el acceso a su API de servicios web: añadir public=true a una petición a /api/index.php/v1/… se salta la comprobación. El exploit público lee así la configuración del sitio, que incluye el usuario y la contraseña de la base de datos.
NVD la puntúa con 5.3, porque solo divulga información. En la práctica, las credenciales filtradas abren la base de datos dondequiera que acepte conexiones remotas, y los ataques empezaron justo después de hacerse pública. CISA la añadió a KEV en enero de 2024.
De un vistazo
- CVE
- CVE-2023-23752
- Software
- Joomla! CMS
- Versiones afectadas
- De 4.0.0 a 4.2.7
- Corregida en
- 4.2.8
- Puntuación 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í, añadida el 8 de enero de 2024
- Publicada por NVD
- 16 de febrero de 2023
- Parche virtual de InfraFence
vp-cve-2023-23752(ModSecurity id 9920008)
Qué está afectado
Joomla 4.0.0 a 4.2.7. Joomla 3 no tiene esa API y no está afectado por esta CVE (no tiene soporte desde agosto de 2023). La corrección es Joomla 4.2.8.
Comprobar si un servidor es vulnerable
Encuentra cada Joomla del servidor y muestra su versión:
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.)"
doneLos intentos son peticiones a la API con el parámetro public:
sudo grep -rhiE '/api/index\.php/v1/[^ ]*[?&]public=' --include='*access*' --exclude='*.gz' /var/log/apache2 /var/log/httpd 2>/dev/null | tail -20Corregirlo
- Haz una copia de seguridad de los archivos del sitio y de la base de datos.
- Actualiza Joomla desde el panel de administración (System › Update › Joomla) a 4.2.8 o posterior, mejor la última versión de una rama con soporte.
- Si los logs muestran peticiones con éxito (estado 200) con
public=true, da por conocidas las credenciales deconfiguration.php: cambia la contraseña de la base de datos (y actualizaconfiguration.php), la contraseña del correo y cualquier otro secreto guardado ahí. - Asegúrate de que la base de datos no acepta conexiones desde internet.
Cómo la bloquea InfraFence mientras actualizas
El parche virtual para CVE-2023-23752 es una regla ModSecurity que bloquea una petición a una ruta que contiene /api/index.php/v1/ cuando la query string tiene un parámetro public. Las demás peticiones a la API, con su autenticación normal, pasan.
Cómo se aplica el parche
- El agente anota qué puertos SSH y qué sitios responden.
- Escribe la regla (id de ModSecurity 9920008) entre sus propios marcadores en su archivo de ModSecurity, ejecuta
apachectl configtesty recarga Apache de forma ordenada. Si la prueba falla, vuelve a poner el archivo anterior. - Comprueba que SSH y los sitios siguen respondiendo, y quita el parche si no es así.
- Comprueba que ModSecurity bloquea de verdad con la regla, con una petición de prueba local inofensiva. Un ModSecurity en
DetectionOnlysolo registra: en ese caso el parche se quita y se notifica como ineficaz, nunca como aplicado.
Cada petición que bloquea el parche se notifica con CVE-2023-23752 (agente 1.0.37 o posterior): ves los intentos en la actividad del servidor y en la página Explotación del panel, así sabes que están probando la vulnerabilidad contra ti.
Atención: Un parche virtual bloquea la forma conocida del ataque en las peticiones que pasan por Apache en ese servidor. No sustituye a la actualización: instala la versión corregida y después quita el parche desde Actividad con Deshacer si ya no lo necesitas.
Los parches virtuales necesitan Apache con ModSecurity, el ajuste Permitir cambios en la configuración del servidor web y ningún panel de hosting ni herramienta de gestión de la configuración a cargo del servidor web; forman parte del plan Pro y de AutoMode. Los aplica una persona desde el análisis con IA, o AutoMode. Consulta Parches virtuales.
Fuentes
Los datos de esta página vienen de estas fuentes; consúltalas por si hay cambios.
Pruébalo gratis en 1 servidor
Starter es gratuito para un servidor, con protección completa y bloqueo automático. Sin tarjeta de crédito.
Instala el agente como root, con tu token en lugar de <TOKEN>:
curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --token <TOKEN>El token se crea en el panel, en Servidores › Añadir servidor.
