Volver al Blog
Ciberseguridad 23 de mayo de 2026 5 min read

Ataque a la Cadena de Suministro de Laravel-Lang: 233 Versiones Envenenadas con Backdoor RCE

Cuatro paquetes de localización de Laravel fueron comprometidos con un ladrón de credenciales PHP inyectado en 233 tags de versión. Si usas alguno de los paquetes afectados, rota todos tus secretos de inmediato.

Ataque a la Cadena de Suministro de Laravel-Lang: 233 Versiones Envenenadas con Backdoor RCE

El 22 y 23 de mayo de 2026, investigadores de Aikido Security y el Socket Research Team descubrieron un ataque activo a la cadena de suministro del ecosistema Laravel. Los cuatro paquetes comprometidos — laravel-lang/lang (7.800 estrellas en GitHub), laravel-lang/http-statuses, laravel-lang/attributes y laravel-lang/actions — tenían 233 tags de versión maliciosos distribuidos en las ramas de lanzamiento 12.x a 15.x.

El vector de ataque explota una característica poco conocida de Composer combinada con GitHub: el atacante creó un fork malicioso de los repositorios oficiales y luego publicó tags de release desde los repos legítimos que apuntaban a commits dentro del fork controlado por el atacante. Para cualquier desarrollador revisando la lista de tags o los eventos de release, todo parecía normal. Una vez que Composer resolvía un tag envenenado, el código malicioso se cargaba automáticamente a través del autoloader, sin ninguna acción adicional por parte del usuario.

Qué hace el payload

El código inyectado es un ladrón de credenciales PHP de aproximadamente 5.900 líneas, organizado en quince módulos especializados. En ejecución, recolecta:

  • Claves de acceso a la nube para AWS, GCP, Azure y DigitalOcean
  • Archivos de configuración de Kubernetes y tokens de autenticación de Docker
  • Claves privadas SSH y credenciales Git
  • Cualquier secreto almacenado en archivos .env de Laravel

Toda la información recolectada se exfiltra silenciosamente a un servidor controlado por el atacante mediante HTTPS.

Quiénes están afectados

Cualquier aplicación PHP que haya ejecutado composer install o composer update y descargado uno de los 233 hashes de versión comprometidos. Los pipelines de CI/CD con actualizaciones automáticas de dependencias son el objetivo de mayor riesgo, ya que el ataque estuvo activo el tiempo suficiente para comprometer múltiples entornos. Packagist eliminó las versiones maliciosas y ocultó temporalmente los cuatro paquetes al recibir la notificación.

Qué hacer ahora mismo

Revisa tu composer.lock en busca de alguno de estos paquetes. Si encuentras uno, trata el host como completamente comprometido:

  1. Rota cada secreto al que el sistema tenía acceso: claves IAM de AWS, cuentas de servicio de GCP, claves SSH, contraseñas de base de datos, tokens de API
  2. Audita los registros de acceso al proveedor de nube para detectar llamadas a la API inusuales en las últimas 72 horas
  3. Actualiza a las versiones limpias publicadas después del incidente o fija un hash de commit verificado
  4. Ejecuta composer audit y habilita Socket u herramientas SCA similares en tu pipeline de CI

El ataque a Laravel-Lang sigue el patrón establecido por los incidentes de node-ipc y el gusano npm de TanStack a principios de este mes. El ecosistema de Composer ha tenido históricamente menos comprobaciones de seguridad automatizadas que npm, lo que lo convierte en un objetivo cada vez más atractivo. El ritmo de los ataques a la cadena de suministro en PHP está acelerándose.

Packagist ha prometido implementar una validación más estricta sobre la propiedad de los tags de versión para prevenir la técnica de redirección de forks utilizada aquí. Ese trabajo está en curso.

supply-chain php laravel composer seguridad