InfraFenceInfraFence

Live Security Operations

Empezar

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:

Cualquier distribución 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

Los intentos son peticiones a la API con el parámetro public:

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

Corregirlo

  1. Haz una copia de seguridad de los archivos del sitio y de la base de datos.
  2. 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.
  3. Si los logs muestran peticiones con éxito (estado 200) con public=true, da por conocidas las credenciales de configuration.php: cambia la contraseña de la base de datos (y actualiza configuration.php), la contraseña del correo y cualquier otro secreto guardado ahí.
  4. 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

  1. El agente anota qué puertos SSH y qué sitios responden.
  2. Escribe la regla (id de ModSecurity 9920008) entre sus propios marcadores en su archivo de ModSecurity, ejecuta apachectl configtest y recarga Apache de forma ordenada. Si la prueba falla, vuelve a poner el archivo anterior.
  3. Comprueba que SSH y los sitios siguen respondiendo, y quita el parche si no es así.
  4. Comprueba que ModSecurity bloquea de verdad con la regla, con una petición de prueba local inofensiva. Un ModSecurity en DetectionOnly solo 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.