El endpoint .env.local es una variante del archivo de entorno .env y su exposición pública representa un riesgo de seguridad grave y muy común. Es uno de los muchos archivos que los atacantes y sus bots buscan de forma sistemática para obtener información sensible.

¿Qué es un archivo .env.local?

Es un archivo de configuración que almacena variables de entorno, utilizadas para separar la configuración del código de la aplicación . En el contexto de una web con WordPress (especialmente si se usa con frameworks modernos como Bedrock o en arquitecturas headless), este archivo puede contener secretos críticos como credenciales de bases de datos (DB_NAME, DB_USER, DB_PASSWORD), claves de API (SECRET_HEADER_KEY), tokens de autenticación y URLs de endpoints.

Su función específica es la de sobrescribir y extender la configuración principal del archivo .env, a menudo para un entorno local o de desarrollo. Por esta razón, el riesgo se duplica: no solo contiene información sensible, sino que también podría contener configuraciones menos seguras que, si se aplican en producción, crearían una puerta trasera.

Un ejemplo sería:

DB_HOST=localhost DB_NAME=wordpress DB_USER=wp_user DB_PASSWORD=MiContraseñaSegura APP_ENV=production APP_DEBUG=false MAIL_HOST=smtp.example.com MAIL_USERNAME=correo@example.com MAIL_PASSWORD=ContraseñaSMTP APP_API_KEY=sk-xxxxxxxxxxxxxxxx

En un WordPress tradicional, estos datos suelen estar en wp-config.php, pero algunos proyectos modernos los trasladan al archivo .env por motivos de seguridad y facilidad de gestión.

⚠️ El Peligro: ¿Por qué es un problema de seguridad?

El archivo en sí no es el problema, sino que esté accesible desde la web. Los atacantes utilizan herramientas automatizadas para buscar archivos de entorno y, si lo encuentran, pueden leer su contenido sin necesidad de autenticación.

Las consecuencias de esta exposición pueden ser devastadoras :

  1. Acceso a la base de datos: Con las credenciales de la base de datos, un atacante puede conectarse directamente a ella para robar o modificar información.
  2. Compromiso de servicios externos: Si se exponen claves de API, el atacante podría acceder a servicios de pago (como envíos o pasarelas de pago).
  3. Toma de control del sitio: Con la información adecuada, un atacante puede escalar privilegios y obtener control total sobre el sitio y el servidor.

Además, la exposición de estos archivos no solo ocurre por un descuido en la configuración del servidor. Vulnerabilidades en plugins, como una de Directory Traversal en el plugin "Restrict File Access" (CVE-2025-6070), pueden permitir a atacantes autenticados leer cualquier archivo del servidor, incluyendo .env y .env.local.

¿Cómo comprobar si está expuesto?

CoreAudit WP detacta si esta activo en tu sitio cuando es escaneado, pero tambien puedes realizar una petición a:

https://tudominio.com/.env
También es recomendable comprobar variantes comunes:

/.env /.env.local /.env.production /.env.dev /.env.test /.env.backup /.env.bak /.env.old

Si el servidor devuelve el contenido del archivo (HTTP 200), existe una vulnerabilidad crítica.

Si responde con:

403 Forbidden ✅ Correcto. 404 Not Found ✅ Correcto. 200 OK mostrando variables de entorno ❌ Vulnerabilidad crítica.

¿Cómo protegerlo?

Guardar .env fuera del directorio público

Nunca debe estar dentro de:

public_html/ htdocs/ www/

Bloquear el acceso desde el servidor web

Apache (.htaccess)

<Files ".env"> Require all denied </Files>

bloquear todos los archivos ocultos:

<FilesMatch "^\."> Require all denied </FilesMatch>

Nginx

location ~ /\. { deny all; return 403; }

En resumen, cualquier archivo .env que esté accesible al público es un objetivo de primer nivel para los atacantes. La detección y corrección de esta exposición debe ser una acción prioritaria de seguridad.