BRIEFING DE SEGURIDAD · 12.10.2026 DEENFRES

Práctica e Implementación

Puerta trasera: Ataque coordinado a la cadena de suministro en npm, PyPI y Crates – qué deben

Por Alec Chizhik · 25 de mayo de 2026 · 11 min de lectura

El 22 de mayo de 2026, a las 20:20 UTC, una cuenta de PyPI subió el paquete eth-security-auditor 0.1.0. Para cuando Socket clasificó la oleada como TrapDoor, ya había 34 paquetes más en npm, PyPI y Crates.io. Tiempo medio de detección por versión: 5 minutos y 27 segundos. Quien inicie un CI/CD-Run en ese intervalo tiene un problema que ninguna demo de proveedor explica.

Lo más importante en resumen

  • Ataque coordinado en múltiples registros. Socket documenta 34 paquetes en más de 384 versiones, en paralelo en npm, PyPI y Crates.io bajo la cuenta asdxzxc, todos con el mismo marcador P-2024-001.
  • Las configuraciones de codificación con IA se convierten en superficie de ataque. TrapDoor escribe instrucciones ocultas con Unicode de ancho cero en archivos cursorrules y CLAUDE.md, para que Cursor o Claude inicien escaneos de seguridad falsos.
  • Las pipelines de CI/CD son el objetivo, no el portátil del desarrollador. Quien no haya desactivado postinstall, build.rs y los hooks de importación de Python en el build, tiene una ruta de cadena de suministro sin parchear, que según el artículo 21 de NIS2 y la gestión de riesgos ICT de DORA está sujeta a documentación obligatoria.

Relacionado:NIS2 y CLOUD Act  /  Cumplimiento de NIS2 en pymes

Por qué esta oleada no se parece al typosquatting

¿Qué es TrapDoor? TrapDoor es la denominación que los investigadores de seguridad de Socket dan a un ataque coordinado a la cadena de suministro en mayo de 2026, en el que se infiltraron más de 34 paquetes maliciosos en paralelo en npm, PyPI y Crates.io, con el objetivo de robar keystores de wallets, claves SSH, credenciales en la nube y configuraciones de editores de IA. El clúster lleva el marcador interno P-2024-001 y está vinculado a la cuenta de GitHub ddjidd564 y a la cuenta de npm asdxzxc.

Las campañas habituales de typosquatting dependen del azar. Alguien se equivoca al teclear en *npm install*, un paquete con un nombre similar entrega una carga oculta. TrapDoor funciona de otra manera. Los paquetes tienen nombres como *prompt-engineering-toolkit*, *solidity-deploy-guard* y *defi-threat-scanner*. Se hacen pasar por herramientas para el público objetivo exacto que el atacante quiere explotar: desarrolladores en entornos de cripto, DeFi, Solana e IA.

La segunda diferencia con respecto a una oleada típica de npm es la amplitud en los registros. Tres gestores de paquetes a la vez, con la misma huella del actor de la amenaza, la misma cuenta de GitHub *ddjidd564* y el mismo marcador. Esto es una operación planificada, no un script de principiante.

Y es rápido. Socket informa de un tiempo medio de detección de 5 minutos y 27 segundos en 381 registros de versiones con marcas de tiempo completas. El hallazgo más rápido se produjo 58 segundos después de la publicación. Quien ejecute un *npm install* o *pip install* en uno de estos intervalos en un runner de CI no controlado, tendrá mala suerte.

Cómo el ataque se ramifica por registro

1 149
Líneas de código en el cargador npm trap-core.js, el módulo central de recolección de credenciales y propagación de TrapDoor.
Fuente: Socket Threat Research, mayo de 2026

Los paquetes comparten una arquitectura de destino, pero con diferentes activadores por ecosistema. En npm, la carga útil se adjunta a postinstall, en Rust el código se extrae a través de build.rs, y en Python se ejecuta en el momento de la importación. Esta separación es relevante porque afecta exactamente a los tres puntos en los que los sistemas de construcción ejecutan automáticamente código externo sin que el usuario lo inicie explícitamente.

Se recopilan claves SSH, credenciales de AWS, tokens de GitHub, bases de datos de inicio de sesión del navegador, almacenes de claves de billetera para Sui, Solana y Aptos, variables de entorno, claves API y configuraciones locales de desarrollo. Esto representa la visión completa de un perfil de estación de trabajo de desarrolladora promedio, incluyendo todas las persistencias en la nube.

Dónde TrapDoor realmente innova: configuraciones de codificación con IA

El ataque tiene un vector que el código malicioso habitual de la cadena de suministro no posee. TrapDoor manipula los archivos de configuración de Cursor y Claude Code directamente. Concretamente: cursorrules y Proyecto-CLAUDE.md se modifican con caracteres Unicode de ancho cero que permanecen invisibles para el revisor en el editor, pero que el asistente de IA interpreta como prompt.

El resultado es una instrucción camuflada que lleva al asistente a ejecutar sus propios escaneos de seguridad o rutinas de diagnóstico, que en realidad exportan datos del contexto del proyecto. Quien trabaje con un editor asistido por IA y no controle las versiones de los archivos de configuración del repositorio, tiene una vía que la detección de endpoints habitual no ve. Esta es la primera ola documentada de cadena de suministro que utiliza agentes de IA como capa de coejecución.

Quien se lo tome en serio en el equipo, tratará cursorrules y Proyecto-CLAUDE.md a partir de hoy como scripts de construcción. Revisiones diff por commit, verificación de codificación para anomalías Unicode, y ningún merge sin cuatro ojos.

Mitigaciones en CI/CD: qué funciona y qué falla

Qué falla

  • Ejecutores de construcción con acceso a Internet y sin filtro de egreso
  • npm install sin –ignore-scripts en CI
  • Archivos de bloqueo sin verificación de hash al restaurar
  • Cuentas de servicio compartidas entre varios proyectos
  • cursorrules y Proyecto-CLAUDE.md sin seguimiento en el espacio de trabajo

Qué funciona

  • npm ci –ignore-scripts, pip –no-build-isolation controlado
  • Generación de SBOM por construcción, firmado
  • Lista de permitidos en lugar de lista de bloqueados en registros
  • Credenciales de construcción efímeras mediante OIDC, sin token estático
  • Construcciones reproducibles con comparación de hash frente a la última ejecución exitosa

Los filtros de egreso son la palanca subestimada. Incluso si un postinstall malicioso se ejecuta en la construcción, sin una conexión saliente a redes de terceros no tiene destino para las credenciales. Quien hoy opere su ejecutor de GitHub Actions o GitLab en una VPC plana sin reglas de egreso, no avanzará con npm audit.

El segundo ganador silencioso es OIDC. Una construcción que obtiene su token efímero de AWS en el momento de la ejecución desde el emisor OIDC del CI, no tiene una clave en la nube de larga duración que TrapDoor pueda robar. Esto desplaza la ventana de ataque del secreto permanente a la duración de la construcción.

NIS2 y DORA: dónde el tema ya es obligatorio documentar

El artículo 21 de NIS2 incluye la seguridad de la cadena de suministro como una de las medidas mínimas de gestión de riesgos que debe implementar un proveedor esencial o importante. Concretamente: evaluación documentada de los proveedores directos y prestadores de servicios, incluidas las dependencias de software. Una dependencia npm en una build utilizada en producción no es jurídicamente menos proveedor que un módulo de control adquirido externamente.

DORA exige para el sector financiero, en los artículos 28 y 30, un inventario completo de terceros de TIC más los riesgos de concentración documentados. Quien, como banco o entidad financiera, utilice un repositorio npm con cientos de dependencias transitivas sin incluirlas en el registro de terceros de TIC, tendrá un flanco abierto en la próxima auditoría.

Ambos marcos normativos no exigen una protección completa contra paquetes de día cero, pero sí un proceso trazable. Aquí es donde reside la palanca de NIS2 y DORA para los responsables de seguridad: TrapDoor se convierte en un caso práctico concreto con el que medir los propios procesos de cadena de suministro.

Plan de acción 30 días
Días 1 a 3
Activar filtros de egreso en los runners de CI/CD, limitar destinos salientes a una lista blanca de registros. Efecto inmediato, baja complejidad.
Días 4 a 10
Cambiar npm ci y pip a –ignore-scripts o aislamiento controlado de builds. Incorporar generación de SBOM por build.
Días 11 a 20
Desplegar federación OIDC para credenciales en la nube en CI, deprecar y rotar tokens de servicio de larga duración.
Días 21 a 30
Versionar cursorrules y CLAUDE.md de proyecto en todos los repositorios, incluir diff de codificación en el hook de pre-commit. Actualizar documentación NIS2 y DORA por repositorio.

Cuatro semanas son una ventana realista si el equipo de seguridad redacta los tickets y el equipo de plataforma construye. El orden es intencionadamente asimétrico: egreso antes que SBOM, antes que OIDC, antes que configuración de IA. Quien siga este orden cierra primero las vías por las que TrapDoor exfiltra datos y luego se ocupa de los temas estructurales.

Qué queda por resolver

Socket describe un atacante que sabe mucho sobre sistemas de build modernos y editores de IA. La próxima oleada probablemente no se encuentre en paquetes pep o npm, sino en Helm Charts, imágenes base de contenedores o directamente en flujos de trabajo de GitHub Actions. Quien archive TrapDoor solo como un incidente npm, está planeando al margen del próximo vector.

Conviene tratar desde hoy la propia plataforma de CI/CD como un sistema de producción en funcionamiento, no como una herramienta auxiliar. Con todo lo que ello implica: línea base de hardening, monitorización, manual de incidentes y responsabilidades documentadas.

Preguntas frecuentes

Cada pregunta está bloqueada. Un toque desbloquea la respuesta.

¿Qué paquetes están actualmente marcados como maliciosos?

Socket documenta 34 paquetes y más de 384 versiones en npm, PyPI y Crates.io. Algunos ejemplos del informe de Socket son prompt-engineering-toolkit, solidity-deploy-guard y defi-threat-scanner. Socket mantiene una lista completa y actualizada en la publicación original del blog. Los propios repositorios de compilación deberían cotejarse con esta lista.

¿Estoy afectado si ejecuto npm install localmente?

El riesgo es alto en local, ya que postinstall se ejecuta sin restricciones. En CI/CD es aún mayor, porque los runners de compilación suelen tener acceso a credenciales en la nube de larga duración y claves SSH. Quien trabaje en ambos entornos sin filtros de salida, sin npm ci –ignore-scripts y sin comparación de SBOM debería revisar hoy los registros de las últimas 72 horas.

¿Qué hay que hacer concretamente con Cursor y Claude Code?

Los archivos de configuración como cursorrules y CLAUDE.md del proyecto deben estar versionados en cada repositorio. Un hook de pre-commit que revise el archivo en busca de caracteres Unicode de ancho cero evita la variante más obvia del ataque. Además, la cuestión de qué fuentes externas lee un editor de IA en tiempo de ejecución debe incluirse en cada documento de incorporación.

¿Cómo encaja TrapDoor en la evaluación de riesgos de NIS2?

El artículo 21 de NIS2 exige una evaluación documentada de los riesgos en la cadena de suministro. Una dependencia de código abierto con un mantenedor poco claro es jurídicamente un proveedor. Quien no tenga un proceso que evalúe los paquetes antes de su incorporación y los supervise después, tiene un hallazgo claro en la auditoría.

¿Vale la pena migrar a réplicas de registros privados?

Para equipos con alta frecuencia de compilación y código cercano a producción, sí. Un mirror interno con lista de permitidos y verificación de hash traslada el modelo de confianza lejos del registro público. El esfuerzo es real, pero la protección es verificable y auditable, lo que cuenta explícitamente bajo NIS2 y DORA.

Recomendaciones de lectura de la redacción

RecomendaciónZero Trust en el proveedor energético: Lo que revelan ahora las auditorías NIS2RecomendaciónNIS2 se topa con el CLOUD Act: Quién responde por la laguna de terceros paísesRecomendaciónAnálisis de amenazas impulsado por IA: Lo que necesitan ahora los SOC alemanes

Más del MBF Media Netzwerk

cloudmagazinIngeniería de plataformas para cumplimiento: los IDP imponen NIS2 y DORAMyBusinessFutureLa optimización de procesos fracasa en la entrega, no en la herramientaDigital ChiefsRenovaciones SaaS: dónde se esconde el aumento silencioso de precios

Fuente de la imagen: generada por IA (julio 2026)

Traducido del original en alemán con inteligencia artificial. La versión alemana es la de referencia.

Lectura adicional

Práctica e Implementación · 18 de septiembre de 2026

N-central: servidor controlable a distancia sin parche

CISA incluyó la CVE-2026-86218 en su catálogo el 8 de septiembre. Las agencias federales tenían hasta el 11. Los servidores propios necesitan la 2026.3.1.14.

Una revista de Evernine Media GmbH