StepSecurity halla robo de credenciales en @subql/common pese al bloqueo de scripts de instalación de npm 12, mientras Python 3.15 y Node.js ajustan calendario.
La firma StepSecurity detectó un gancho de instalación malicioso en la versión 5.8.3 del paquete, publicada la madrugada del 5 de octubre y capaz de abrir acceso remoto en equipos de desarrollo.
La empresa de seguridad StepSecurity identificó el 5 de octubre un script de post-instalación malicioso incrustado en la versión 5.8.3 de @subql/common, una librería del monorepo de SubQuery usada para indexar datos en aplicaciones Web3. Según su análisis, el código decodifica una carga en base64 que se ejecuta tanto al instalar el paquete como al importarlo dentro de una aplicación, y recoge credenciales de estaciones de desarrollo y entornos de integración continua, incluidos ejecutores de GitHub Actions y servicios de nube accesibles desde esa máquina. La versión maliciosa se publicó en dos tandas, a las 11:24:40 y las 11:56:29 UTC del 5 de octubre, según el registro de publicación de npm; la última versión limpia conocida es la 5.8.2, de noviembre de 2025. SubQuery no había publicado un comunicado propio sobre el incidente al cierre de esta edición, y la base de datos de paquetes maliciosos OSV, respaldada por Google, catalogó el caso por separado del registro oficial de npm. No se identificaron equipos de desarrollo costarricenses entre los afectados reportados, pero cualquier proyecto local que use herramientas de indexación Web3 vía npm queda expuesto al mismo patrón de ataque.
GitHub anunció en junio que la versión 12 de npm desactivaría por defecto los scripts de ciclo de vida -preinstall, install y postinstall- que los atacantes venían usando como la superficie de ejecución de código más grande del ecosistema npm, según describió la propia compañía. El cambio alineó a npm con Yarn, pnpm y Bun, que ya bloqueaban esos scripts por defecto. El ataque a @subql/common muestra el límite de esa defensa: StepSecurity documentó que la carga maliciosa se activa tanto en la instalación como en el momento en que el paquete se importa dentro del código de la aplicación, un punto que la desactivación de scripts de instalación no cubre. El mecanismo recuerda al compromiso de más de 32 paquetes bajo el espacio de nombres @redhat-cloud-services el 1 de junio de 2026, documentado por Aikido y OX Security, en el que los atacantes también evadieron por completo la revisión de código antes de publicar. Sin impacto local conocido al cierre de esta edición en ninguno de los dos casos. La discusión sobre dónde trazar el límite de confianza en paquetes de código abierto sigue abierta entre mantenedores de npm, Yarn y Bun.
— GitHub desactivó por defecto los scripts de instalación en npm 12 para cortar el vector más usado en ataques a la cadena de suministro, pero @subql/common ejecutó su carga también al importarse.
Para equipos que dependen de @subql/common, la recomendación inmediata de firmas como StepSecurity es fijar la dependencia a la versión 5.8.2, publicada en noviembre de 2025 y anterior al ataque, en lugar de aceptar automáticamente actualizaciones dentro del mismo rango semántico. Quien haya corrido npm install entre las 11:24 y las 11:56 UTC del 5 de octubre -la ventana en la que se publicaron las versiones comprometidas, según el registro de npm- debe asumir que las credenciales presentes en esa máquina pudieron quedar expuestas. El segundo paso, común a este tipo de incidentes, es rotar tokens de npm, claves de GitHub Actions y credenciales de nube que hayan estado accesibles desde el equipo o el ejecutor de integración continua donde corrió la instalación; StepSecurity señala que la carga maliciosa buscaba específicamente ese tipo de credenciales. No hay reportes de equipos costarricenses afectados, pero el mismo protocolo de revisión de lockfile y rotación de credenciales aplica a cualquier organización local que use dependencias de npm sin fijar versiones exactas.
Python 3.15.0rc3 salió el 2 de octubre con 156 correcciones de errores, mejoras de compilación y cambios de documentación aportados por 82 personas, según el registro de la versión publicado en python.org. La causa del retraso, de acuerdo con el equipo de lanzamiento, fueron bloqueos de última hora relacionados con la función de importación diferida explícita (PEP 810), que el equipo prefirió probar con más tiempo antes de congelar la versión final. La fecha final quedó fijada para el 9 de octubre. Entre las novedades que trae 3.15 destacan el tipo incorporado frozendict (PEP 814), el tipo sentinel (PEP 661) y un nuevo paquete de perfilado con un muestreador estadístico de alta frecuencia. El lanzamiento no tiene un ángulo costarricense específico más allá de que los equipos locales que usan Python en producción deberán validar sus dependencias contra la versión final antes de actualizar, como con cualquier lanzamiento mayor del lenguaje.
Node.js cierra una década de lanzamientos mayores dos veces al año. A partir de este mes, el proyecto abre el canal alfa de la versión 27, que será la primera bajo el nuevo esquema: un solo lanzamiento Current cada abril, promovido a soporte de largo plazo (LTS) cada octubre, sin la distinción previa entre ramas pares e impares. La versión 27 llegará como Current en abril de 2027 y pasará a LTS en octubre de ese año. La versión 26, vigente como Current desde abril de este año, entra este octubre en su propia ventana de soporte de largo plazo bajo el esquema anterior, el último en seguir el calendario semestral. El cambio afecta a cualquier equipo de desarrollo que planifique actualizaciones de Node.js, incluidos los que operan en Costa Rica: el ciclo de soporte extendido se alarga, pero las ventanas para subir de versión mayor se reducen a una por año a partir de 2027.
La jornada combina el hallazgo de StepSecurity sobre @subql/common -un caso que repite, cuatro meses después, el patrón del ataque a @redhat-cloud-services de junio y que muestra el límite del bloqueo de scripts de instalación de npm 12-, la cuenta regresiva final de Python 3.15 hacia el 9 de octubre y el cambio de Node.js a un solo lanzamiento mayor por año a partir de 2027. No fue posible confirmar una cifra verificada de paquetes maliciosos nuevos en npm y PyPI para esta edición, por lo que el indicador diario queda en pausa hasta contar con una fuente que lo respalde.