Aviso de seguridad
Nivel de peligrosidad: Alto
Descripción
Packagist es el registro principal de paquetes PHP que se pueden instalar a través de Composer, una herramienta de administración de dependencias. Sin embargo, en lugar de alojar estos paquetes, Packagist sirve más como un directorio de metadatos que agrega paquetes de código abierto publicados en GitHub. Luego, los desarrolladores pueden instalar estos paquetes en sus máquinas ejecutando el comando de composer install.
Packagist reveló que un atacante obtuvo acceso a cuatro cuentas inactivas en la plataforma para secuestrar más de una docena de paquetes con más de 500 millones de instalaciones hasta la fecha
El atacante bifurcó cada uno de los paquetes y reemplazó la descripción del paquete en composer.json con su propio mensaje, pero no realizó ningún otro cambio malicioso.
La cadena de ataque, en pocas palabras, hizo posible modificar la página de Packagist para cada uno de los paquetes secuestrados a un repositorio de GitHub del mismo nombre, alterando efectivamente el flujo de trabajo de instalación utilizado en los entornos de Composer.
La explotación exitosa significaba que los desarrolladores que descargaran los paquetes obtendrían la versión bifurcada en lugar del contenido real.
Packagist dijo que no se distribuyeron cambios maliciosos adicionales y que todas las cuentas se deshabilitaron y sus paquetes se restauraron el 2 de mayo de 2023. También insta a los usuarios a habilitar la autenticación de dos factores (2FA) para proteger sus cuentas.
Recursos afectados
Los nombres de los paquetes secuestrados incluyen:
Nombre del paquete | Número total de instalaciones |
acmephp/acmephp | 124,860 |
acmephp/core | 419,258 |
acmephp/ssl | 531,692 |
doctrine/doctrine-cache-bundle | 73,490,057 |
doctrine/doctrine-module | 5,516,721 |
doctrine/doctrine-mongo-odm-module | 516,441 |
doctrine/doctrine-orm-module | 5,103,306 |
doctrine/instantiator | 526,809,061 |
growthbook/growthbook | 97,568 |
jdorn/file-system-cache | 32,660 |
jdorn/sql-formatter | 94,593,846 |
khanamiryan/qrcode-detector-decoder | 20,421,500 |
object-calisthenics/phpcs-calisthenics-rules | 2,196,380 |
tga/simhash-php (aka tgalopin/simhashphp) | 30,555 |
Recomendaciones
Aunque no se haya instalado contenido malicioso dentro de los paquetes secuestrados (solo se modificó la descripción en los archivos composer.json), se recomienda no aceptar ciegamente las actualizaciones de la cadena de suministro sin revisarlas par verificar que sean correctas.
Referencias
Repositorio popular de PHP Packagist pirateado