Durante el último año, se ha detectado un patrón persistente de ataques a la cadena de suministro que aprovechan debilidades en repositorios de paquetes y sistemas CI/CD para propagar malware rápidamente en cientos de proyectos de código abierto. Este malware tiene como objetivo exfiltrar credenciales tanto para ampliar el alcance del ataque como para futuras explotaciones. Hemos detallado anteriormente nuestros planes para fortalecer la cadena de suministro en publicaciones sobre nuestro plan para una cadena de suministro npm más segura en septiembre de 2025, el fortalecimiento de la seguridad de la cadena de suministro en diciembre de 2025, y lo que viene en la hoja de ruta de seguridad de GitHub Actions 2026 en marzo de 2026. En este artículo, actualizamos los cambios implementados que interrumpen directamente algunas de las técnicas de ataque más comunes e impactantes.

Anatomía de los ataques a la cadena de suministro

Los ataques a la cadena de suministro encadenan varias debilidades, y no existe una capacidad de seguridad única que pueda detenerlos por completo. Abordarlos requiere un enfoque holístico, priorizando las mitigaciones que rompen los eslabones más críticos de la cadena de ataque. Nuestros equipos han estado estudiando estos ataques para implementar mejoras que los interrumpan y limiten su impacto. Esto es posible gracias a la colaboración con la comunidad de investigadores de seguridad y desarrolladores.

Los ataques varían en su forma de propagación a través del ecosistema de software. Sin embargo, la mayoría sigue técnicas similares para obtener acceso inicial a un proyecto, escalar privilegios y distribuirse entre usuarios y software. Las mejoras realizadas en npm y GitHub Actions en los últimos meses se han centrado en bloquear técnicas específicas y comunes, proporcionando formas para que los clientes identifiquen y respondan a estas amenazas.

Compromiso inicial

Los ataques comienzan comprometiendo un proyecto único, a menudo mediante el acceso directo a la cuenta de un mantenedor o atacando los flujos de trabajo (workflows) de acciones del proyecto.

npm añade protección preventiva para cuentas de alto impacto (junio 2026): Con frecuencia, los ataques inician con campañas de phishing dirigidas a los mantenedores. Con este cambio, las cuentas de npm de alto impacto entran en modo de solo lectura durante 72 horas cuando cambian su correo electrónico o utilizan un código de recuperación 2FA. Este retraso permite a los mantenedores tiempo para responder y recuperar la cuenta antes de que pueda ser utilizada para iniciar un ataque.

Configuración más segura de pull_request_target para GitHub Actions checkout (junio 2026): Una vulnerabilidad común en los pipelines de CI/CD son los "pwn requests", donde un workflow se activa ante solicitudes de extracción (pull requests) desde forks y ejecuta código no confiable enviado por el usuario. Cambiamos el comportamiento predeterminado de actions/checkout para impedir la descarga de código no confiable desde forks en disparadores comúnmente explotados, a menos que se opte explícitamente por lo contrario tras revisar los riesgos. Este cambio y su retroportabilidad a versiones anteriores eliminan uno de los patrones de código vulnerable más frecuentes que conducen a la ejecución de código en workflows de CI/CD.

Control de quién y qué activa los workflows de GitHub Actions (junio 2026): Es posible que prefiera desactivar estos disparadores de acciones riesgosos o limitar quién puede activarlos. Este nuevo control permite establecer políticas a nivel de empresa, organización o repositorio sobre quién tiene permiso para activar workflows y qué tipos de disparadores están permitidos. Estas políticas de ejecución proporcionan una capa de menor privilegio gobernable y personalizable, reduciendo la superficie de ataque de su infraestructura CI/CD.

Caché de Actions de solo lectura para disparadores no confiables (junio 2026): Una vez que un atacante logra la ejecución de código en un workflow, busca escalar a workflows más privilegiados (y, por tanto, obtener credenciales) mediante el envenenamiento de las entradas de caché compartidas. Con este cambio, restringimos la capacidad de los workflows menos confiables para modificar la caché compartida con otros workflows. Esto cierra directamente una ruta común utilizada por atacantes para convertir una vulnerabilidad de impacto limitado en una que compromete credenciales altamente privilegiadas utilizadas por workflows de publicación.

Exfiltración de credenciales

Una vez que un atacante tiene acceso a un paquete, se enfoca en detectar y exfiltrar credenciales para obtener acceso adicional y utilizarlas en futuras explotaciones a través de los ecosistemas.

npm trusted publishing ahora soporta CircleCI (abril 2026): Lo más importante que puede hacer para interrumpir estos ataques es eliminar las credenciales de larga duración de su pipeline de CI/CD. El trusted publishing es una excelente manera de autorizar publicaciones en su repositorio de paquetes sin credenciales permanentes. Al añadir CircleCI como proveedor, hemos facilitado que más personas eliminen las credenciales que estos ataques intentan exfiltrar.

Firewall de red para Actions (en technical preview): Esta vista previa técnica registra todo el tráfico de red saliente de las ejecuciones de sus workflows de Actions, permitiendo detectar comportamientos inusuales como la descarga de código malicioso o la exfiltración de credenciales a dominios desconocidos. Trabajos futuros permitirán restricciones de egreso de red y políticas para bloquear estos ataques antes de que conduzcan a una mayor escalada y exfiltración.

Propagación del ataque

Con las credenciales obtenidas en el paso anterior, los atacantes intentan usarlas para distribuir su malware y comprometer más proyectos y mantenedores tan rápido como sea posible.

Publicación por etapas (staged publishing) para npm (mayo 2026): Con esta función, no basta con tener credenciales para publicar un paquete nuevo en npm; dichos paquetes se mantienen en espera hasta que se proporcione una aprobación adicional y autenticación 2FA en la CLI de npm o en npmjs.com. Este control de seguridad opcional permite a los mantenedores asegurar que cualquier versión publicada haya pasado por esta autorización extra. Al desacoplar las credenciales utilizadas en pipelines de CI/CD de aquellas que pueden publicar en el registro, se corta la cadena de ataque desde el pipeline hacia la distribución de malware.

Próximos cambios disruptivos para npm v12 (junio 2026): Para propagar malware rápidamente, los atacantes usan scripts de tiempo de instalación de npm para exfiltrar credenciales en lugar de esperar a que el código se ejecute en tiempo de ejecución. Con npm v12, implementaremos un cambio que deshabilita estos scripts de instalación por defecto. Dado que tienen usos legítimos, se pueden reactivar aprobando scripts específicos. Otros vectores de ejecución de código en tiempo de instalación también han sido bloqueados al deshabilitar dependencias vía git o URLs remotas por defecto.

Actualizaciones de versiones de Dependabot introducen enfriamiento de paquetes (julio 2026): Los atacantes confían en la velocidad, esperando que un lanzamiento malicioso sea incorporado a tantos proyectos descendentes como sea posible antes de que alguien lo note. Las actualizaciones de versiones mediante Dependabot ahora esperan a que un lanzamiento esté disponible al menos tres días antes de abrir una solicitud de extracción, dando tiempo a que las señales de detección aparezcan antes de que el paquete malicioso llegue a su proyecto. Este enfriamiento está activo por defecto, y las actualizaciones de seguridad siguen abriéndose de inmediato, por lo que las correcciones críticas nunca se retrasan.

Identificación y respuesta a ataques

En paralelo al endurecimiento de npm y GitHub Actions, hemos estado trabajando en ofrecer herramientas para que los usuarios identifiquen y respondan a incidentes que hayan impactado sus proyectos y cuentas.

Revocación de credenciales autoservicio para respuesta a incidentes (junio 2026): Las credenciales de GitHub siguen siendo un objetivo constante. Esta función proporciona herramientas de autoservicio para revocar instantáneamente todas las credenciales de un usuario determinado en una empresa. Esto se basa en las herramientas de gestión de credenciales a nivel empresarial para respuesta a incidentes lanzadas en febrero, permitiendo a los administradores responder rápidamente ante compromisos de seguridad.

Vía GitHub Blog.