Más de 600 aplicaciones de Laravel están expuestas a la ejecución remota de código debido a APP_KEYs filtradas en GitHub

Investigadores en ciberseguridad han descubierto una grave vulnerabilidad que permite que claves APP_KEY filtradas de Laravel sean utilizadas de forma maliciosa para obtener capacidades de ejecución remota de código en cientos de aplicaciones.

«La APP_KEY de Laravel, crucial para cifrar datos sensibles, se filtra con frecuencia de forma pública (por ejemplo, en GitHub)», señaló GitGuardian. «Si un atacante accede a esta clave, puede aprovechar una falla de deserialización para ejecutar código arbitrario en el servidor, comprometiendo tanto los datos como la infraestructura».

La empresa, en conjunto con Synacktiv, informó que logró extraer más de 260,000 claves APP_KEY desde GitHub entre 2018 y el 30 de mayo de 2025, identificando más de 600 aplicaciones Laravel vulnerables en el proceso. GitGuardian indicó que se detectaron más de 10,000 claves únicas en GitHub, de las cuales 400 fueron confirmadas como funcionales.

La APP_KEY es una clave de cifrado aleatoria de 32 bytes que se genera al instalar Laravel. Se guarda en el archivo .env de la aplicación y se emplea para cifrar y descifrar datos, generar cadenas aleatorias seguras, firmar/verificar datos y crear tokens de autenticación únicos, siendo así un componente crítico de seguridad.

GitGuardian advirtió que la función decrypt() de Laravel presenta una vulnerabilidad, ya que deserializa automáticamente los datos descifrados, lo que abre la puerta a una posible ejecución remota de código.

«En aplicaciones Laravel, si un atacante obtiene la APP_KEY y logra invocar la función decrypt() con una carga maliciosa, puede ejecutar código remotamente en el servidor web Laravel», explicó el investigador de seguridad Guillaume Valadon.

«Esta vulnerabilidad fue inicialmente documentada como CVE-2018-15133, que afectaba versiones anteriores a Laravel 5.6.30. Sin embargo, el vector de ataque sigue vigente en versiones más recientes cuando los desarrolladores configuran explícitamente la serialización de sesiones en cookies mediante SESSION_DRIVER=cookie, como lo demuestra la CVE-2024-55556«.

Cabe señalar que la CVE-2018-15133 ha sido explotada en entornos reales por actores maliciosos relacionados con el malware AndroxGh0st, tras escanear la red en busca de aplicaciones Laravel con archivos .env mal configurados.

Análisis adicionales revelaron que el 63% de las exposiciones de APP_KEY provienen de archivos .env (o variantes), que comúnmente también contienen otros secretos sensibles como credenciales de bases de datos, tokens de almacenamiento en la nube, y datos confidenciales de plataformas de comercio electrónico, herramientas de soporte al cliente, e incluso servicios de inteligencia artificial.

Más preocupante aún es que aproximadamente 28,000 combinaciones de APP_KEY y APP_URL fueron expuestas simultáneamente en GitHub. De ellas, cerca del 10% resultaron válidas, lo que deja a 120 aplicaciones vulnerables a ataques triviales de ejecución remota de código.

Dado que la configuración APP_URL especifica la URL base de la aplicación, la exposición conjunta de APP_URL y APP_KEY permite a los atacantes potencialmente acceder directamente a la aplicación, obtener cookies de sesión y tratar de descifrarlas usando la clave filtrada.

Eliminar secretos de los repositorios no es suficiente, especialmente si ya han sido clonados o almacenados en caché por herramientas de terceros. Los desarrolladores necesitan contar con un proceso claro de rotación de claves, complementado con monitoreo continuo que detecte futuras apariciones de cadenas sensibles en logs de CI, compilaciones de imágenes, y capas de contenedores.

«Los desarrolladores nunca deben simplemente borrar las APP_KEY expuestas de los repositorios sin una rotación adecuada», advirtió GitGuardian. «La respuesta correcta incluye: rotar inmediatamente la APP_KEY comprometida, actualizar todos los sistemas productivos con la nueva clave e implementar monitoreo continuo de secretos para evitar nuevas filtraciones».

Este tipo de incidentes se enmarca también dentro de una categoría más amplia de vulnerabilidades de deserialización en PHP, donde herramientas como phpggc permiten a atacantes crear cadenas de gadgets que activan comportamientos inesperados durante la carga de objetos. En entornos Laravel con claves expuestas, estos gadgets pueden llevar a una ejecución total de código sin necesidad de vulnerar la lógica de la aplicación.

Esta revelación se produce después de que GitGuardian informara haber encontrado «la asombrosa cifra de 100,000 secretos válidos» en imágenes de Docker accesibles públicamente en el registro de DockerHub. Entre ellos se incluyen credenciales relacionadas con Amazon Web Services (AWS), Google Cloud y tokens de GitHub.

Un análisis reciente de Binarly sobre más de 80,000 imágenes de Docker únicas, correspondientes a 54 organizaciones y 3,539 repositorios, también descubrió 644 secretos únicos, entre ellos credenciales genéricas, JSON Web Tokens, cabeceras de autorización básica HTTP, claves API de Google Cloud, tokens de acceso AWS y de CircleCI.

«Los secretos aparecen en una amplia variedad de archivos, incluyendo código fuente, archivos de configuración e incluso archivos binarios grandes, lugares donde muchos escáneres actuales no detectan nada», dijo la compañía. «Además, la inclusión de repositorios Git completos dentro de imágenes de contenedores representa un riesgo de seguridad grave y frecuentemente ignorado».

Y eso no es todo. La rápida adopción del Model Context Protocol (MCP) para habilitar flujos de trabajo automatizados en aplicaciones empresariales de IA ha abierto nuevos vectores de ataque, siendo especialmente preocupante la filtración de secretos desde servidores MCP publicados en repositorios de GitHub.

GitGuardian descubrió que 202 de estos servidores filtraron al menos un secreto, lo que representa un 5.2% del total de repositorios MCP analizados —una cifra que, según la empresa, es «ligeramente superior al 4.6% observado en todos los repositorios públicos», lo que convierte a los servidores MCP en una nueva fuente de filtraciones de secretos.

Aunque esta investigación se centra en Laravel, el problema de fondo—secretos mal protegidos en repositorios públicos—afecta también a otros entornos. Las organizaciones deben considerar el uso de escaneo centralizado de secretos, guías específicas para reforzar la seguridad de Laravel, y patrones de desarrollo seguros para el manejo de archivos .env y secretos dentro de contenedores.

Gracias por apoyar el libre conocimiento con tu donación!
Bitcoin: bc1q4sw9260twfcxatj8mjp7358cyvrf8whzlelyhj
Ethereum: 0xFb93D2a3c9d1A0b83EE629c2dE1725BCa192e581
Litecoin: LbFduJmHvQXcpCnwfUT7aJ4DYoWSL3iQw8
Dogecoin: D7QQVqNR5rk215A4zd2gyzV9P2bLQtZHFV
Transferencia bancaria en México:
Cuenta CLABE: 646180224401848086 Nombre: Masterhacks LATAM Banco: STP

Unete a nuestros grupos:
Telegram: https://t.me/masterhacks_net
Canal de WhatsApp https://whatsapp.com/channel/0029VaBBLCn5vKAH9NOWCl3K

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *