Fecha de publicación: Mié, 10/05/2023 - 10:23

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