← Todos los artículos
2 min de lectura

Ataque a la cadena de suministro de axios: cómo protegerte

Dos versiones comprometidas de axios instalaron un RAT multiplataforma. Estas configuraciones reducen el riesgo en npm, Bun y Python.

  • security
  • npm
  • python
  • supply-chain

Comparte este artículo

Publicado originalmente en LinkedIn.

Axios, la librería HTTP más usada de JavaScript con más de 100 millones de descargas semanales, sufrió un ataque a la cadena de suministro. Un atacante comprometió la cuenta npm del mantenedor principal, publicó dos versiones envenenadas (1.14.1 y 0.30.4) e inyectó una dependencia falsa.

La dependencia instalaba un RAT multiplataforma capaz de robar credenciales, tokens SSH y secretos de CI/CD, entre otra información sensible.

Cómo protegerse

Hay una configuración sin trade-offs que habría bloqueado este ataque:

# ~/.npmrc
ignore-scripts=true

Esto impide que cualquier paquete ejecute código arbitrario durante la instalación, que es exactamente el vector utilizado en este caso.

Si usas Bun, ya estás protegido por defecto: bloquea los lifecycle scripts de paquetes no confiables sin configuración adicional.

Detección proactiva

Socket añade otra capa de protección. Analiza cada paquete antes de instalarlo y detecta comportamientos sospechosos en tiempo real.

Existe además otra configuración que añade protección, aunque con un trade-off:

# npm
min-release-age=7
# uv
exclude-newer = "7 days"

Ambas opciones bloquean paquetes publicados hace menos de un número determinado de días. Reducen la exposición a versiones recién comprometidas, pero también retrasan la llegada de parches de seguridad urgentes.

Esa misma semana, el paquete LiteLLM fue comprometido en PyPI en sus versiones 1.82.7 y 1.82.8, robando credenciales y otra información sensible. En Python, este límite de antigüedad resulta especialmente útil porque, a diferencia de npm, no existen lifecycle scripts que podamos bloquear.

← Todos los artículos