Vulnerabilidad en la función statistical cumulative distribution (CVE-2021-29486)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-20
Validación incorrecta de entrada
Fecha de publicación:
30/04/2021
Última modificación:
03/08/2022
Descripción
cumulative-distribution-function es una biblioteca npm de código abierto usada que calcula la función statistical cumulative distribution a partir de una matriz de datos de valores x. En versiones anteriores a la 2.0.0, las aplicaciones que utilizan esta biblioteca con datos malformados pueden presentar un fallo o entrar en un bucle infinito. En el caso de una aplicación de servidor de nodejs que use esta biblioteca para actuar sobre datos no numéricos no válidos, el servidor de nodejs puede bloquearse. Esto puede afectar a otros usuarios de este servidor y/o requerir que el servidor sea reiniciado para que funcione apropiadamente. En el caso de una aplicación de navegador que utilice esta biblioteca para actuar sobre datos no numéricos no válidos, ese navegador puede bloquearse o suspenderse. Se detectó un fallo que permite un bucle infinito en el código para evaluar la cumulative-distribution-function de los datos de la entrada. Aunque la documentación explica que se requieren datos numéricos, algunos usuarios pueden confundir una matriz de cadenas como ["1","2","3","4","5"] para datos numéricos [1,2,3,4,5] cuando es en efecto una cadena de datos. Un bucle infinito es posible cuando la cumulative-distribution-function es evaluada para un punto específico cuando el dato de la entrada es una cadena de datos en vez de un tipo “number”. Esta vulnerabilidad habilita un ataque de denegación de servicio en el bucle cpu infinito en cualquier aplicación que utilice npm: cumulative-distribution-function versiones v1.0.3 o anteriores si el atacante puede suministrar datos malformados a la biblioteca. La vulnerabilidad también podría manifestarse si una fuente de datos a analizar cambia el tipo de datos de Matrices de números (propiamente dichos) a Matrices de cadenas (no válidas, pero no detectadas por una versión anterior de la biblioteca). Los usuarios deben actualizar al menos a la versión v2.0.0 o la última versión. Se han creado pruebas para varios tipos de datos no válidos, y se ha probado la versión 2.0.0 para rechazar estos datos no válidos lanzando un “Typebug()” en lugar de procesarlos. Los desarrolladores que utilizan esta biblioteca pueden desear ajustar ligeramente el código de su aplicación para tolerar o manejar mejor este Typebug. Las aplicaciones que llevan a cabo una comprobación de datos numérica apropiada antes de enviar datos a esta biblioteca no deberían estar afectadas en su mayoría por este parche. La vulnerabilidad puede ser mitigada en versiones anteriores asegurándose de que solo se pasen datos numéricos finitos de tipo “Array[number]” o “number” a la "cumulative-distribution-function" y su función f(x), respectivamente.
Impacto
Puntuación base 3.x
7.50
Gravedad 3.x
ALTA
Puntuación base 2.0
5.00
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:cumulative-distribution-function_project:cumulative-distribution-function:*:*:*:*:*:node.js:*:* | 2.0.0 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/DrPaulBrewer/cumulative-distribution-function/issues/7
- https://github.com/DrPaulBrewer/cumulative-distribution-function/pull/8
- https://github.com/DrPaulBrewer/cumulative-distribution-function/security/advisories/GHSA-58qp-5328-v7mh
- https://www.npmjs.com/package/cumulative-distribution-function



