NIS2 y DORA en vigor. EU AI Act es el próximo — reserva una demo

Test de Penetración Node.js / Express: Prototype Pollution, Supply-Chain npm y Seguridad Backend JavaScript

Node.js domina el backend JavaScript moderno, pero su naturaleza dinámica y el ecosistema npm crean superficies de ataque únicas: prototype pollution, RCE via deserialización, SSRF via clients HTTP (axios, node-fetch), riesgos supply-chain. Matproof Sentinel realiza pentests Node.js / Express dirigidos con informe audit-ready desde 149 €.

Iniciar escaneo gratuito
MW
Escrito por Malte Wagenbach
Fundador de Matproof Security. Especializado en pruebas de penetración impulsadas por IA y cumplimiento UE (DORA, NIS2, ENS, ISO 27001).
Última revisión: 17 de mayo de 2026

Por qué Node.js requiere atención pentest específica

El ecosistema Node.js ha vivido incidentes recientes: HTTP/2 Rapid Reset (CVE-2023-44487) permite DDoS masivos. La falla jsonwebtoken (CVE-2022-23529) afectó virtually todas las aplicaciones Node usando la librería más diffusa. CVE-2024-39338 en axios expone cientos de miles de aplicaciones a SSRF. Más allá de las CVE, los patrones Node.js como manipulación dinámica de propiedades crean vectores únicos de prototype pollution.

  • CVE-2023-44487 (HTTP/2 Rapid Reset, CVSS 7.5): DDoS masivo — Cloudflare detectó 398M req/sec attacks en 2023.
  • CVE-2022-23529 (jsonwebtoken): bypass JWT signature validation — ≈ 9M downloads/semana npm.
  • CVE-2024-39338 (axios SSRF): URLs relativas malformadas permiten SSRF.
  • Prototype pollution: pattern Node.js-específico para escalación a RCE.
  • Riesgos supply-chain npm: 1.2M packages, ~75% con dependencias transitive.
  • Express.js sin protecciones default contra CSRF, XSS, injection.
  • Para fintechs españoles bajo DORA Art. 24 o SaaS bajo NIS2, pentest Node.js documentado es estándar.

Qué testeamos específicamente en una aplicación Node.js / Express

  • Prototype pollution: injection de propiedades en Object.prototype via JSON.parse, body-parser, qs.parse.
  • jsonwebtoken vulnerabilities: algoritmo « none » aceptado, confusión HS256/RS256.
  • npm supply chain: audit completo dependencias, packages con post-install suspect.
  • SSRF via HTTP client: axios, node-fetch, got, request — bypass validation URL.
  • Header injection (CRLF): injection newline en HTTP headers via parameters usuario.
  • Configuración HTTP/2: exposure a CVE-2023-44487 si HTTP/2 sin rate-limiting.
  • Injection NoSQL via mongoose / mongodb: operadores $ne, $gt, $where.
  • Insecure deserialization: uso de node-serialize, eval() con user data.
  • Configuración Express: middleware auth orden incorrecto, helmet ausente.
  • Logging datos sensibles: Winston / Pino configurados para loggear Authorization headers.

Ejemplo de hallazgo

Crítico

Prototype Pollution explotable a RCE en body-parser con gadget chain lodash

La aplicación Express usa body-parser sin configuración restrictiva. Atacante envía payload JSON con clave « __proto__ » que pollutes Object.prototype. La aplicación usa lodash.template con template parcialmente controlado por usuario, creando cadena de explotación: prototype pollution → lodash.template → RCE.

Corrección: Actualización inmediata versiones parcheadas: body-parser ≥ 1.20.3, lodash ≥ 4.17.21. Configurar body-parser con reviver para bloquear keys sensibles. Reemplazar lodash.template por librerías templating sandboxed. Implementar Object.freeze(Object.prototype) al startup.

Referencia: CVE-2022-24999 · CWE-1321 · OWASP A08:2021

Pentest Node.js: opciones comparadas

Escaneo gratuitoMatproof SentinelConsultoría tradicional
Motor de escaneo automatizado✓ (vista previa 3 min)✓ Escaneo completo✗ Solo manual
Cobertura OWASP Top 10Parcial✓ Completa✓ Completa
Evidencia proof-of-exploit✓ Por hallazgo✓ Por hallazgo
Mapeo normativo (DORA/NIS2/ISO 27001)✓ Automatizado✓ Manual
Informe PDF listo para auditoría✓ Inmediato✓ Entrega 2–4 semanas
Escaneos continuos / recurrentes✓ Por despliegue✗ Encargo anual
Tiempo hasta el primer resultado~3 min~30 min escaneo completo2–4 semanas
Precio€0Desde €149€8.000–€25.000
Revisión de código fuente (SAST)✓ Plan Growth✓ En alcance
Pruebas de API (REST/GraphQL)✓ Automatizado✓ Manual

Paquetes Pentest Node.js

Escaneo único
€149 pago único
  • 1 escaneo pentest completo
  • Hallazgos priorizados por IA con CVSS 3.1
  • Proof-of-exploit por hallazgo
  • Informe PDF listo para auditoría
  • Mapeo normativo (DORA, NIS2, ISO 27001)
Comprar escaneo único
Recomendado
Starter
€299 / mes
  • Escaneos ilimitados (hasta 3 dominios)
  • Monitorización continua
  • Integración CI/CD (GitHub, GitLab)
  • Todos los mapeos normativos
  • Soporte prioritario
Iniciar Starter
Growth
€799 / mes
  • Escaneos + dominios ilimitados
  • Pruebas autenticadas / White-Box
  • Pruebas de API e infraestructura cloud
  • Account manager de seguridad dedicado
  • SLA de respuesta en 24h
Contactar para Growth

Preguntas frecuentes sobre el pentest Node.js / Express

¿Diferencia entre pentest Node.js y audit npm-audit estándar?

npm audit identifica CVE conocidas. Pentest Node.js va más allá: testeamos patrones runtime específicos (prototype pollution, SSRF via HTTP client, deserialization), Express middleware configuration, demostramos exploitabilidad real con proof-of-exploit.

¿Cómo auditan la supply-chain npm?

Cuatro layers: (1) análisis estático package-lock.json; (2) cross-reference NVD, GitHub Advisory, Snyk Database; (3) detección packages suspect; (4) recommendations pinning.

Mi aplicación Node.js usa NestJS / Fastify / Koa. ¿El pentest aplica?

Sí. Cubrimos todo ecosistema Node.js. Clases vulnerabilidades largamente comunes.

¿El pentest puede testar APIs GraphQL Node.js (Apollo, GraphQL Yoga)?

Sí. APIs GraphQL requieren tests específicos: query depth limiting, introspection production, batch query attacks, autorización resolver.

¿Cómo gestionan tests Node.js en serverless (Lambda, Vercel, Cloudflare Workers)?

Testeamos functions serverless: cold-start timing side-channel, leak environment variables via stack trace, IAM role privilege escalation.

¿Cuánto tiempo requiere un pentest Node.js completo?

60 minutos para aplicación Express típica. Para microservices Node.js / GraphQL: 2-4 horas.

Temas relacionados

Profundiza — artículos relacionados del blog

Proteja su aplicación Node.js ahora

Primer escaneo en 3 minutos, pentest Node.js completo en 60 minutos. Informe audit-ready DORA / NIS2 / ISO 27001 desde 149 €.

Iniciar escaneo gratuito