Se han emitido actualizaciones de seguridad de carácter urgente para PHP Composer, el gestor de dependencias estándar y fundamental utilizado por desarrolladores en todo el ecosistema PHP a nivel global. Los mantenedores del proyecto han parcheado dos vulnerabilidades críticas de inyección de comandos radicadas en el controlador del Sistema de Control de Versiones (VCS) de Perforce. Estos fallos se derivan de un escape insuficiente de valores al construir comandos de shell, lo que permite a actores de amenazas ejecutar código arbitrario directamente en las estaciones de trabajo de los desarrolladores o en los servidores de integración continua (CI/CD).
Anatomía de las Vulnerabilidades
Los dos problemas de seguridad exponen a los desarrolladores a riesgos severos al manejar proyectos no confiables o metadatos de paquetes maliciosos:
- Inyección Directa vía composer.json (CVE-2026-40176):
- Esta vulnerabilidad afecta el método interno utilizado para generar comandos de Perforce.Un atacante puede inyectar comandos de sistema operativo manipulando parámetros de conexión (como el puerto, el usuario o el cliente) dentro de un archivo composer.json malicioso.
- Vector de Ataque: Requiere que el desarrollador ejecute comandos de Composer de forma manual dentro de un directorio de proyecto no confiable. No puede desencadenarse silenciosamente a través de la instalación estándar de dependencias.
- Inyección vía Metadatos de Repositorio (CVE-2026-40261):
- Fallo de escape inadecuado al añadir un parámetro de referencia de origen a un comando shell del sistema.Un repositorio de Composer comprometido o malicioso puede servir metadatos de paquetes manipulados para explotar esta falla.
- Vector de Ataque: Altamente peligroso. No requiere que el software Perforce esté instalado en la máquina objetivo, ya que Composer intentará ejecutar el comando inyectado de todos modos. Se explota simplemente durante el proceso de instalación de dependencias maliciosas desde el código fuente.
Impacto
La explotación de cualquiera de estos fallos resulta en el compromiso total de la estación de trabajo del desarrollador o del servidor de compilación. Los atacantes pueden utilizar esta ejecución arbitraria de comandos para robar código fuente, exfiltrar credenciales de acceso a repositorios, inyectar puertas traseras en los proyectos en desarrollo o pivotar hacia la red interna de la organización. Afortunadamente, no se ha detectado explotación activa (in-the-wild) antes de esta divulgación pública.
Recomendaciones y Mitigación
Para proteger el ecosistema general, plataformas como Packagist.org ya han deshabilitado preventivamente la publicación de metadatos de fuentes de Perforce. A nivel de infraestructura corporativa y estaciones de trabajo, se deben aplicar las siguientes medidas:
- Actualización Inmediata (Mandatoria): Todos los desarrolladores y administradores de servidores de construcción deben actualizar su instalación ejecutando el comando composer.phar self-update para migrar inmediatamente a la versión 2.9.6 o a la versión de soporte a largo plazo (LTS) 2.2.27.
- Forzar Descargas de Distribución (Workaround Temporal): Si la actualización no puede realizarse de inmediato, se debe evitar la instalación de dependencias directamente desde el código fuente. Se recomienda utilizar el indicador –prefer-dist en los comandos de instalación o configurar los ajustes globales del proyecto para preferir siempre los archivos de distribución empaquetados.
- Auditoría de Orígenes: Asegurarse de que los proyectos dependan exclusivamente de repositorios de Composer verificados y de confianza. Se debe inspeccionar cuidadosamente cualquier archivo composer.json de proyectos no confiables antes de inicializarlos.




