Una nueva campaña de ataque «coordinada» a la cadena de suministro ha afectado a ocho paquetes en empaquetador incluido código malicioso diseñado para ejecutar un binario de Linux recuperado de una URL de versiones de GitHub.
«Aunque los paquetes afectados eran todos paquetes de Composer, el código malicioso no se agregó a Composer.json», dijo Socket. «En cambio, se insertó en package.json, dirigido a proyectos que incluyen herramientas de compilación de JavaScript junto con código PHP».
Esta «ubicación entre ecosistemas» hace que la actividad se destaque porque los desarrolladores y equipos de seguridad que escanean las dependencias de PHP solo pueden centrarse en los metadatos relacionados con Composer, mientras omiten los ganchos del ciclo de vida de package.json que están incluidos en el paquete. Desde entonces, las versiones maliciosas se han eliminado de Packagist.
Un análisis de los paquetes ha descubierto que sus repositorios ascendentes han sido modificados para incluir un script posterior a la instalación que intenta descargar un binario de Linux desde una URL de lanzamiento de GitHub («github(.)com/parikhpreyash4/systemd-network-helper-aa5c751f»), guardarlo en la carpeta «/tmp/.sshd», cambiar sus permisos usando «chmod» para otorgar permisos de ejecución a todos los usuarios y ejecutarlo en segundo plano.
Los nombres de los paquetes y la versión afectada asociada se enumeran a continuación:
- moritz-sauer-13/silverstripe-cms-theme (dev-master)
- crosiersource/crosierlib-base (dev-master)
- devdojo/wave (dev-principal)
- devdojo/génesis (dev-main)
- katanaui/katana (dev-principal)
- elitedevsquad/sidecar-laravel (3.x-dev)
- r2luna/cerebro (dev-principal)
- baskarcm/tzi-chat-ui (dev-principal)

La investigación de Socket encontró referencias a la misma carga útil en 777 archivos en GitHub, lo que sugiere que podría ser parte de una campaña más amplia. En al menos dos casos, se agregó a un flujo de trabajo de GitHub. Sin embargo, actualmente no se sabe cuántos de estos coinciden con distintos compromisos, bifurcaciones, artefactos de paquetes duplicados o referencias almacenadas en caché.
«Esto sugiere que el atacante no confiaba en un único mecanismo de ejecución. En los artefactos del paquete, la carga útil se activaba a través de scripts postinstalación package.json», dijo la firma de seguridad de aplicaciones. «En los archivos de flujo de trabajo, estaba posicionado para ejecutarse durante los trabajos de GitHub Actions».
Es más, la naturaleza exacta de la carga útil descargada de GitHub no está clara, ya que la cuenta de GitHub asociada con el repositorio que lo aloja ya no está disponible. La elección del nombre «gvfsd-network» para el malware es interesante, ya que se refiere a un demonio del sistema de archivos virtual de GNOME (GVfs) responsable de administrar y explorar recursos compartidos de red.
«Incluso sin el binario de segunda etapa, el instalador malicioso es suficiente para justificar el bloqueo», dijo Socket. «Proporciona ejecución remota de código durante la instalación o creación de flujos de trabajo e intenta ocultar su actividad desactivando la verificación TLS, suprimiendo errores y ejecutando un binario descargado en segundo plano».