Vulnerabilidad en JOSE (CVE-2022-36083)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
07/09/2022
Última modificación:
21/07/2023
Descripción
JOSE es "JSON Web Almost Everything" - JWA, JWS, JWE, JWT, JWK, JWKS sin dependencias usando la criptografía nativa del tiempo de ejecución en Node.js, Browser, Cloudflare Workers, Electron y Deno. Los algoritmos de administración de claves JWE basados en PBKDF2 esperan un parámetro de encabezado JOSE llamado "p2c" PBES2 Count, que determina cuántas iteraciones de PBKDF2 deben ejecutarse para derivar una clave envolvente CEK. El propósito de este parámetro es ralentizar intencionadamente la función de derivación de la clave para que los ataques de fuerza bruta y de diccionario a las contraseñas sean más costosos. Esto hace que los algoritmos PBES2 sean inapropiados para situaciones en las que el JWE procede de una fuente no confiable: un adversario puede elegir intencionadamente un valor de PBES2 Count extremadamente alto, que iniciará un cálculo limitado por la CPU que puede tardar una cantidad de tiempo irrazonable en terminar. Bajo determinadas condiciones, es posible que el entorno del usuario consuma una cantidad irrazonable de tiempo de CPU. El impacto es limitado sólo a usuarios que usan las API de descifrado de JWE con secretos simétricos para descifrar JWE de partes no confiables que no limitan los algoritmos de administración de claves JWE aceptados (parámetro de cabecera "alg") usando la opción de descifrado "keyManagementAlgorithms" (o "algorithms" en v1.x) o por otros medios. Las versiones "v1.28.2", "v2.0.6", "v3.20.4" y "v4.9.2" limitan el número máximo de iteraciones de PBKDF2 a "10000" por defecto. Es posible ajustar este límite con la nueva opción de descifrado "maxPBES2Count". Si los usuarios no pueden actualizar la versión de la biblioteca que necesitan, se presentan dos opciones dependiendo de si esperan recibir JWEs que usen alguno de los tres algoritmos de administración de claves JWE basados en PBKDF2. Pueden usar la opción de descifrado "keyManagementAlgorithms" para deshabilitar la aceptación de PBKDF2 por completo, o pueden inspeccionar el encabezado JOSE antes de usar la API de descifrado y limitar el recuento de iteraciones de PBKDF2 (parámetro de encabezado "p2c")
Impacto
Puntuación base 3.x
5.30
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:jose_project:jose:*:*:*:*:*:node.js:*:* | 1.0.0 (incluyendo) | 1.28.2 (excluyendo) |
cpe:2.3:a:jose_project:jose:*:*:*:*:*:node.js:*:* | 2.0.0 (incluyendo) | 2.0.6 (excluyendo) |
cpe:2.3:a:jose_project:jose:*:*:*:*:*:node.js:*:* | 3.0.0 (incluyendo) | 3.20.4 (excluyendo) |
cpe:2.3:a:jose_project:jose:*:*:*:*:*:node.js:*:* | 4.0.0 (incluyendo) | 4.9.2 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página