1.033 claves secretas de Stripe activas fueron expuestas de 669 proveedores después de que los archivos .env y los registros de depuración (debug logs) quedaran accesibles en el internet público. Las claves permiten que cualquier persona cree cargos, extraiga facturas y recolecte detalles de clientes, una brecha que puede vaciar billeteras y arruinar reputaciones en cuestión de minutos.
Qué provocó la filtración
Los desarrolladores suelen almacenar datos de configuración —contraseñas de bases de datos, tokens de API y claves secretas de Stripe— en un archivo llamado .env. El archivo reside junto al código fuente y se lee en tiempo de ejecución para mantener los secretos fuera del código base. La práctica solo funciona si el servidor nunca sirve archivos que comiencen con un punto. En este caso, servidores web mal configurados (tanto Nginx como Apache) permitieron que las solicitudes para “/.env”, “/.env.example”, “/.git/HEAD” y un endpoint personalizado “/debug” devolvieran el archivo sin procesar con un estado 200 OK.
La filtración no fue causada por una vulnerabilidad en la plataforma de Stripe, ni por un fallo en ningún plugin de comercio electrónico específico. Fue una pura exposición de archivos que deberían haber sido invisibles para el mundo.
Por qué es importante la exposición
Una clave secreta de Stripe es, efectivamente, una contraseña maestra para la infraestructura de pagos de un comerciante. Cualquiera que la posea puede:
- Crear cargos arbitrarios en tarjetas almacenadas
- Recuperar facturas e historiales de desembolsos
- Extraer datos personales: nombres, correos electrónicos, números de teléfono, direcciones de domicilio, direcciones IP
- Canjear códigos promocionales para compras gratuitas o con descuento
El conjunto de datos filtrados incluyó todo lo anterior, además de detalles de desembolsos que revelan cuánto ganó cada proveedor. Para una empresa, el riesgo inmediato son las transacciones fraudulentas que generan contracargos, la pérdida de confianza del cliente y posibles multas bajo PCI-DSS, GDPR u otros regímenes de privacidad de datos. El costo a largo plazo puede ser mucho mayor: honorarios legales, gastos de remediación y una marca dañada que podría no recuperarse nunca.
Prueba rápida: ¿está expuesto tu .env?
Abre una terminal y reemplaza yourdomain.com con tu propio nombre de host:
for p in "/.env" "/.env.example" "/.git/HEAD" "/debug"; do
echo -n "$p -> "
curl -s -o /dev/null -w "%{http_code}\n" "https://yourdomain.com$p"
done
Cada línea debería devolver 403 (prohibido) o 404 (no encontrado). Una respuesta 200 significa que el archivo es legible públicamente, un incidente de seguridad crítico que requiere atención inmediata.
Pasos de remediación inmediata
1. Bloquear archivos con punto en el servidor web
- Nginx – añade un bloque
locationque deniegue cualquier solicitud de archivos que comiencen con un punto. - Apache – utiliza una directiva
FilesMatchen.htaccesspara devolver un 403 para archivos con prefijo de punto.
2. Reforzar tu flujo de trabajo de Docker
- Añade
.enva.dockerignorepara que el archivo nunca se copie en la imagen. - Evita el uso de la instrucción
COPYpara cualquier archivo que contenga secretos.
3. Rotar cada clave comprometida
- Inicia sesión en el Stripe Dashboard → Developers → API keys.
- Genera una nueva clave secreta y revoca la anterior inmediatamente.
4. Adoptar claves de privilegio mínimo
- Deja de usar una única clave secreta para todas las operaciones.
- Crea claves restringidas que solo permitan las acciones necesarias; por ejemplo, un servicio de checkout necesita permiso para crear
payment intents, pero no para emitir reembolsos o ver desembolsos.
5. Eliminar cada copia de la clave antigua
- Escanea los logs de CI/CD, los artefactos de construcción y los archivos de respaldo.
- Ejecuta herramientas de escaneo de secretos como Gitleaks o TruffleHog contra tu historial de Git.
Una clave filtrada no desaparece cuando eliminas el archivo del servidor; vive para siempre en manos de quienquiera que la haya descargado. La rotación es la única forma de dejar los datos robados inservibles.
Más allá de la solución: construir un pipeline más seguro
- Escaneo automatizado – integra la detección de secretos en cada pull request y trabajo de CI.
- Gestión de configuración – almacena los secretos en una bóveda dedicada (por ejemplo, HashiCorp Vault, AWS Secrets Manager) e inyéctalos en tiempo de ejecución en lugar de depender de archivos estáticos.
- Revisiones de acceso – audita periódicamente qué claves de Stripe están activas y qué permisos tienen.
Estas prácticas reducen la posibilidad de que un único servidor mal configurado pueda exponer toda la infraestructura de pagos.
Qué observar a continuación
La comunidad de seguridad ya está buscando claves expuestas adicionales utilizando la misma metodología. Se esperan más divulgaciones a medida que los escáneres automatizados rastrean la web en busca de archivos “/.env” que contengan tokens de Stripe. Stripe podría emitir orientación adicional sobre la cadencia de rotación de claves y recomendar claves restringidas para operaciones de alto riesgo.
Conclusión
Si un dotfile puede obtenerse mediante un navegador, tu sistema de pagos ya está comprometido: bloquea el archivo, rota la clave y rediseña tu flujo de trabajo de gestión de secretos antes de que el fraude afecte a tu libro contable.
