Moment: Expresión regular vulnerable

Creado en 8 sept. 2017  ·  24Comentarios  ·  Fuente: moment/moment

La siguiente expresión regular utilizada para analizar las fechas especificadas como cadenas es vulnerable a ReDoS:

/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i

La ralentización es moderadamente baja: para 50.000 caracteres alrededor de 2 segundos de tiempo de coincidencia. Sin embargo, todavía sugeriría uno de los siguientes:

  • eliminar la expresión regular,
  • anclar la expresión regular,
  • limitar el número de caracteres que pueden coincidir con la repetición,
  • limitar el tamaño de entrada.

Si es necesario, puedo proporcionar un ejemplo real que muestre la desaceleración.

Bug Up-For-Grabs

Comentario más útil

Agradeceríamos que la solución para esto se pueda acelerar, ahora que se ha registrado en nsp, nuestras compilaciones están fallando.

Todos 24 comentarios

Para aclarar, esto está en la expresión regular matchWord , en /src/lib/parse/regex.js aquí .

Aquí hay un diagrama de ferrocarril de la expresión regular . De esto podemos ver que la agrupación con repetición está relacionada con el análisis de caracteres árabes. Sería útil si alguien que entienda tanto las expresiones regulares como el idioma árabe pudiera intentarlo.

También es útil

Tomaré esto es que nadie ya ha comenzado

@hamiltondanielb todo tuyo :)

@cristianstaicu
Si es necesario, puedo proporcionar un ejemplo real que muestre la desaceleración.

Me gustaría ver un ejemplo si es posible :)

@ Drag0s lo envió en su correo electrónico privado.

Para su información, esto se agregó a NSP (ver aquí ), por lo que probablemente comenzará a romper las compilaciones de las personas pronto.

@hamiltondanielb - ¿

Acabo de romper nuestra construcción 👯

Es triste que el problema tuviera que hacerse público antes de que se solucionara. Emisión abierta el 8 de septiembre, aviso de NSP publicado hoy. @cristianstaicu tal vez debería haber recordado a los mantenedores sobre la fecha límite de divulgación para darle un impulso a esto.

@mattgrande hay una meta-ness en esto: resulta que la versión de nsp a la que estábamos anclados (2.8.1) depende del momento (a través de joi), por lo que estaba informando una vulnerabilidad en su propia dependencia:

1__bash

La actualización a nsp 3.1.0 resolvió esto porque la dependencia ya no está allí, así que tenga cuidado con eso si no depende directamente del momento.

¿Hay un arreglo para esto aún?

Indique alguna solución disponible.

Aún no se ha publicado ninguna corrección.

Por favor, si está interesado en recibir actualizaciones de los mantenedores, suscríbase a las notificaciones de actualizaciones de este problema haciendo clic en "Suscribirse" en la columna de la derecha.

Para agregar una excepción nsp para esto, agregue un archivo .nsprc :

{
  "exceptions": [
     "https://nodesecurity.io/advisories/532"
  ]
}

¡Gracias @ westy92 ! Salvó mi construcción.

Hola, @ westy92 y @ jacob-go. tengo el siguiente código.
var tasksMethods = require ('gulpfile-ninecms');
gulp.task ('nsp', tasksMethods.nsp);
No está recogiendo la excepción del archivo .nsprc. Sigue dándome el error de vulnerabilidad por un momento.
Agregué el archivo en la raíz del proyecto. ¿Hay algo que me falte por hacer?

@Dexterslab estamos usando gulp-nsp , que funciona bien cuando .nsprc está en el directorio del proyecto (mismo nivel que package.json ). ¿Quizás intente usar gulp-nsp directamente?

@cristianstaicu @mattgrande, ¿esto también está sucediendo en Luxon?

Agradeceríamos que la solución para esto se pueda acelerar, ahora que se ha registrado en nsp, nuestras compilaciones están fallando.

¿Puedo sugerir a los mantenedores que bloqueen esta conversación?
Para todos los que esperan una solución, simplemente presione el botón de suscripción y se le notificará.

Si alguien quiere realizar la solución, no dude en abrir un PR.

¿Alguien necesita notificar a nsp esto ha sido parcheado? https://nodesecurity.io/advisories/532

Esto se ha solucionado en la versión 2.19.3. Actualice en consecuencia.

No estoy seguro de cómo notificar a NSP - @cristianstaicu, ¿ podrías

Envié un correo electrónico a

Hola,

La vulnerabilidad moment.js actualmente pendiente (https://nodesecurity.io/advisories/532) fue parcheada recientemente y la corrección se lanzó en la v.2.19.3.

¿Cuál es el proceso para informar actualizaciones de estado sobre avisos? Esta dirección de correo electrónico es la mejor vía que pude encontrar.

¡Gracias!

Acabo de recibir una respuesta de que NSP DB debería actualizarse con 2.19.3 como versión fija.

Verificado por mi parte que 2.19.3 ya no alerta.

¿Fue útil esta página
0 / 5 - 0 calificaciones