El archivo debug.log no forma parte del núcleo de WordPress, pero es un archivo de registro (log) que WordPress puede generar cuando está activado el modo de depuración (WP_DEBUG). Si debug.log es accesible públicamente, se considera una vulnerabilidad de divulgación de información (Information Disclosure), cuya gravedad puede ir de media a crítica dependiendo de la información que contenga.

¿Qué es y por qué es un peligro?

Cuando se activa en WordPress, la constante WP_DEBUG_LOG guarda todos los errores, avisos y advertencias de PHP en un archivo dentro de la carpeta wp-content. Por defecto, este archivo se llama debug.log y se almacena en wp-content/debug.log. El problema es que, en muchas configuraciones, este archivo es directamente accesible desde el navegador.

Su presencia indica que el modo de depuración de WordPress está activado en un entorno de producción y que los errores se están guardando en un archivo de log accesible públicamente.

La información que contiene convierte a este archivo en un objetivo de alto valor para los atacantes:

  1. Divulgación de rutas del servidor: Expone la estructura de archivos de tu servidor, como /home/site/wwwroot/, lo que facilita ataques como Local File Inclusion (LFI) o Remote File Inclusion (RFI).
  2. Enumeración de plugins y versiones: Muestra qué plugins están instalados y qué funciones utilizan, permitiendo a un atacante buscar vulnerabilidades específicas para esos plugins.
  3. Exposición de datos sensibles en logs: Puede llegar a registrar tokens, claves API, consultas SQL, o incluso cookies de administración si un plugin como LiteSpeed Cache tiene su función de depuración activada (CVE-2024-44000). Esta cookie robada puede permitir al atacante tomar el control total de tu sitio sin necesidad de contraseña.

⚠️ Problemas de seguridad específicos

La exposición de este archivo no es un problema teórico; hay vulnerabilidades documentadas que lo demuestran:

Vulnerabilidad Nivel de Riesgo Descripción Archivo de Log
LiteSpeed Cache Debug Log Crítico Cuando la depuración está activa en el plugin LiteSpeed Cache (versiones < 6.5.0.1), este guarda las cookies de administración en un debug.log accesible. /wp-content/debug.log
SSP Debug Plugin Medio Guarda logs de errores de PHP en una ubicación predecible y accesible. /wp-content/debug.log
Debug Log Manager Plugin Medio Vulnerable a XSS Almacenado al recargar el log de depuración. Variable

¿Cómo comprobar si está expuesto?

Comprueba si el archivo responde en: https://tudominio.com/wp-content/debug.log

También puedes buscar variantes como:

/debug.log /logs/debug.log /wp-content/uploads/debug.log

Resultados esperados:

404 Not Found ✅ Correcto. 403 Forbidden ✅ Correcto. 200 OK mostrando el contenido ❌ Vulnerabilidad.

¿Qué debes hacer ahora?

Verifica la exposición:

Intenta acceder a https://tudominio.com/wp-content/debug.log desde un navegador. Si ves su contenido o el archivo se descarga, está expuesto.

Desactiva el modo de depuración en producción:

Edita tu archivo wp-config.php y asegúrate de que estas líneas estén configuradas como false:

define('WP_DEBUG', false); define('WP_DEBUG_LOG', false);

Bloquea el acceso a archivos .log:

Configura tu servidor web (Apache/Nginx) para denegar el acceso a cualquier archivo con extensión.log. Si usas Apache, puedes añadir esta regla al .htaccess:

<FilesMatch "\.log$"> Require all denied </FilesMatch>

O bloquear todos los archivos .log:

<FilesMatch "\.log$"> Require all denied </FilesMatch>

Nginx:

location ~* \.log$ { deny all; return 403; }

Si el archivo fue accedido, asume que estás comprometido:

Cambia inmediatamente todas las contraseñas (administradores de WordPress, base de datos, FTP, hosting).

Borra el archivo debug.log.

Busca otros signos de infección en tu sitio, como usuarios administrador desconocidos o archivos extraños.