CVE-2026-34950: qué sistemas afecta y cómo parchear

El CVE-2026-34950 es una vulnerabilidad crítica en la implementación de JSON Web Tokens (JWT) fast-jwt que permite a un atacante remoto ejecutar un ataque de confusión de algoritmos, pudiendo falsificar tokens y comprometer sistemas de autenticación. Esta brecha, con una puntuación CVSS de 9.1, revierte el parche aplicado en el CVE-2023-48223 debido a un error en una expresión regular.

Análisis técnico del CVE-2026-34950

La vulnerabilidad CVE-2026-34950 reside en la función publicKeyPemMatcher del archivo crypto.js de la biblioteca fast-jwt. Esta expresión regular utiliza un anclaje ^ que falla si la cadena de la clave pública contiene espacios en blanco iniciales. Un atacante puede explotar este defecto para burlar la validación y forzar al servidor a aceptar tokens JWT firmados con un algoritmo diferente al esperado, típicamente cambiando de RS256 (asimetría) a HS256 (simetría).

Este tipo de ataque, conocido como algorithm confusion o JWT alg none, no es nuevo. De hecho, el CVE-2026-34950 representa una regresión del parche implementado para el CVE-2023-48223. La consecuencia inmediata es que un atacante sin credenciales puede generar tokens JWT válidos aparentemente, suplantar identidades y obtener acceso no autorizado a recursos protegidos.

Análisis de código fuente en un editor, mostrando la función vulnerable publicKeyPemMatcher en fast-jwt.
Análisis de código fuente en un editor, mostrando la función vulnerable publicKeyPemMatcher en fast-jwt. — Foto: Bernd 📷 Dittrich vía Unsplash
📋 Ficha técnica

CVE ID CVE-2026-34950
Severidad (CVSS) 9.1 – CRÍTICA
Vector CVSS CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Productos afectados fast-jwt versiones 6.1.0 y anteriores
Exploit público No
Fecha publicación 2026-04-06
⚠️ ALERTA DE SEGURIDAD: Esta vulnerabilidad tiene una puntuación CVSS de 9.1 (CRÍTICA) y, aunque no se ha confirmado un exploit público en el momento de publicación, el riesgo es elevado debido a que permite ataques de confusión de algoritmos JWT que comprometen la autenticación. Se recomienda parchear de inmediato.

Desde el punto de vista de la ciberinteligencia, observamos que las vulnerabilidades en bibliotecas de autenticación como fast-jwt son objetivos prioritarios para actores avanzados. La explotación del CVE-2026-34950 podría integrarse en kits de ataque automatizados en cuestión de días tras la divulgación de un proof-of-concept.

Sistemas y versiones afectadas

🔬 ¿Cuántos puntos de entrada tiene tu empresa para un atacante? En Iberia Intelligence realizamos auditorías de seguridad y tests de intrusión con metodología ofensiva real: identificamos vulnerabilidades explotables antes de que lo haga un actor malicioso y entregamos un informe ejecutivo con prioridades de remediación.

El impacto del CVE-2026-34950 se limita a aplicaciones y servicios que utilizan la biblioteca Node.js fast-jwt para la generación o verificación de tokens JWT. A continuación, detallamos las versiones vulnerables y las parcheadas.

Producto Versiones vulnerables Versión parcheada
fast-jwt Todas las versiones <= 6.1.0 6.1.1 o superior

Si vuestra aplicación depende de fast-jwt en su archivo package.json con una versión afectada, el sistema es vulnerable. Para verificar la versión instalada, podéis ejecutar el siguiente comando en el directorio del proyecto:

Interfaz de control de versiones de software, destacando la necesidad de actualizar a fast-jwt 6.1.1.
Interfaz de control de versiones de software, destacando la necesidad de actualizar a fast-jwt 6.1.1. — Foto: Liam Briese vía Unsplash
npm list fast-jwt

Entornos de despliegue en riesgo

Los entornos más expuestos incluyen APIs REST, microservicios y aplicaciones web que utilizan JWT para autenticación y autorización. Servicios en la nube, contenedores Docker y plataformas serverless que ejecuten Node.js con una versión vulnerable de fast-jwt deben considerarse en peligro inmediato.

Cómo parchear: guía paso a paso

La remediación del CVE-2026-34950 es directa: actualizar la biblioteca fast-jwt a la versión 6.1.1 o superior. A continuación, detallamos el proceso para entornos basados en Node.js y npm.

Actualización mediante npm

El método más eficaz es utilizar el gestor de paquetes npm para actualizar la dependencia. Ejecutad los siguientes comandos en el directorio raíz de vuestro proyecto Node.js.

Terminal de comandos mostrando la ejecución de npm update para parchar la vulnerabilidad.
Terminal de comandos mostrando la ejecución de npm update para parchar la vulnerabilidad. — Foto: Bernd 📷 Dittrich vía Unsplash

Primero, aseguraos de tener los últimos metadatos de los repositorios:

npm update

Luego, actualizad específicamente el paquete fast-jwt a la última versión estable:

npm install fast-jwt@latest

Si utilizáis un archivo package-lock.json o yarn.lock, aseguraos de que se regenera correctamente. Para proyectos que requieren una versión específica, podéis fijar la versión parcheada en package.json:

"dependencies": {
  "fast-jwt": "^6.1.1"
}

Verificación de la actualización

Tras la instalación, confirmad que la versión vulnerable ha sido reemplazada. Ejecutad:

npm list fast-jwt

La salida debe mostrar una versión igual o superior a 6.1.1. Además, recomendamos ejecutar vuestra suite de pruebas para asegurar que la actualización no introduce incompatibilidades.

Medidas adicionales de mitigación

Si el parche no puede aplicarse de inmediato por razones de compatibilidad, existen workarounds para reducir la superficie de ataque. Estas medidas son temporales y no sustituyen la actualización.

Workaround temporal: validación manual de claves públicas

Podéis implementar un middleware de validación personalizado que asegure que las claves públicas no contengan espacios en blanco iniciales antes de que fast-jwt las procese. Este código de ejemplo ilustra una posible mitigación:

Diagrama de red con reglas de firewall, ilustrando medidas de mitigación para proteger endpoints de autenticación.
Diagrama de red con reglas de firewall, ilustrando medidas de mitigación para proteger endpoints de autenticación. — Foto: Shubham Dhage vía Unsplash
const fastJwt = require('fast-jwt');

function createSafeVerifier(publicKey) {
  // Eliminar espacios en blanco iniciales y finales
  const trimmedKey = publicKey.trim();
  // Validar que la clave comience con '-----BEGIN PUBLIC KEY-----'
  if (!trimmedKey.startsWith('-----BEGIN PUBLIC KEY-----')) {
    throw new Error('Formato de clave pública inválido');
  }
  return fastJwt.createVerifier({ key: trimmedKey });
}

Además, considerad las siguientes acciones defensivas:

  • Restringir el acceso de red: Aplicad reglas de firewall para limitar las conexiones a los endpoints de autenticación solo a direcciones IP de confianza.
  • Monitorización activa: Configurad alertas en vuestros logs de autenticación para detectar intentos inusuales de validación de tokens o errores recurrentes de firma.
  • Revisión de tokens en uso: Auditar los tokens JWT actuales en vuestros sistemas para identificar posibles firmas comprometidas.
✅ Lista de verificación post-parche:

  • Verificad que la versión de fast-jwt es 6.1.1 o superior mediante npm list fast-jwt.
  • Ejecutad pruebas integrales de autenticación y autorización en vuestra aplicación.
  • Consultad el advisory oficial en GitHub para actualizaciones: GHSA-mvf2-f6gm-w987.

Como analistas, insistimos en que la gestión proactiva de vulnerabilidades en dependencias de terceros es crítica. Integrad herramientas de análisis de composición de software (SCA) en vuestro pipeline de desarrollo para detectar automáticamente bibliotecas vulnerables como fast-jwt.

Referencias y recursos oficiales


Descubre las vulnerabilidades de tu empresa antes que los atacantes

Nuestro equipo en Iberia Intelligence ofrece auditorías de seguridad, pentesting y análisis de superficie de ataque para empresas e instituciones. Metodología PTES/OWASP, informe ejecutivo + técnico, y seguimiento de remediación incluido.

→ Solicita información sin compromiso

Deja un comentario