Moment: Expression régulière vulnérable

Créé le 8 sept. 2017  ·  24Commentaires  ·  Source: moment/moment

L'expression régulière suivante utilisée pour analyser les dates spécifiées sous forme de chaînes est vulnérable à ReDoS:

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

Le ralentissement est modérément faible: pour 50 000 caractères environ 2 secondes de temps de correspondance. Cependant, je suggérerais toujours l'un des éléments suivants:

  • supprimer l'expression régulière,
  • ancrer le regex,
  • limiter le nombre de caractères pouvant être mis en correspondance par la répétition,
  • limiter la taille d'entrée.

Si nécessaire, je peux fournir un exemple réel montrant le ralentissement.

Bug Up-For-Grabs

Commentaire le plus utile

Nous apprécierions que le correctif puisse être accéléré, maintenant qu'il a été connecté nsp, nos builds échouent.

Tous les 24 commentaires

Pour plus de précision, ceci est dans l'expression régulière matchWord , dans /src/lib/parse/regex.js ici .

Voici un diagramme de chemin de fer de l'expression régulière . À partir de là, nous pouvons voir que le regroupement avec répétition est lié à l'analyse des caractères arabes. Il serait utile que quelqu'un qui comprend à la fois les expressions régulières et la langue arabe puisse s'y essayer.

Un aperçu de ReDoS est également utile.

Je suppose que personne n'a déjà commencé

@hamiltondanielb tout à vous :)

@cristianstaicu
Si nécessaire, je peux fournir un exemple réel montrant le ralentissement.

J'aimerais voir un exemple si c'est possible :)

@ Drag0s l'a envoyé sur votre email privé.

FYI, cela a été ajouté à NSP (voir ici ), donc cela va probablement commencer à casser les builds des gens bientôt.

@hamiltondanielb - Avez-vous

Je viens de faire notre pause de construction 👯

Il est triste que le problème ait dû devenir public avant d'être résolu. Numéro ouvert le 8 septembre, avis NSP publié aujourd'hui. @cristianstaicu vous

@mattgrande il y a une méta-ness à ceci: il s'avère que la version de nsp à laquelle nous avons été épinglés (2.8.1) dépend du moment (via joi) donc il signalait une vulnérabilité sur sa propre dépendance:

1__bash

La mise à niveau vers nsp 3.1.0 a résolu ce problème car la dépendance n'est plus là - alors méfiez-vous de cela si vous ne dépendez pas directement du moment.

Y a-t-il une solution à cela?

Veuillez indiquer tout correctif disponible?

Aucun correctif n'a encore été publié.

S'il vous plaît, si vous souhaitez obtenir des mises à jour de la part des responsables, abonnez-vous aux notifications de mises à jour de ce problème en cliquant sur "S'abonner" dans la colonne de droite.

Pour ajouter une exception nsp à ce sujet, ajoutez un fichier .nsprc :

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

Merci @ westy92 ! J'ai sauvé ma construction.

Salut @ westy92 et @ jacob-go. J'ai le code suivant.
var tasksMethods = require ('gulpfile-ninecms');
gulp.task ('nsp', tasksMethods.nsp);
Il ne récupère pas l'exception de fichier .nsprc. Cela ne cesse de me donner l'erreur de vulnérabilité pour le moment.
J'ai ajouté le fichier à la racine du projet. Y a-t-il quelque chose qui me manque à faire?

@Dexterslab nous utilisons gulp-nsp , ce qui fonctionne bien lorsque le .nsprc est dans le répertoire du projet (même niveau que package.json ). Essayez peut-être d'utiliser directement gulp-nsp ?

@cristianstaicu @mattgrande Est-ce que cela se passe aussi à Luxon?

Nous apprécierions que le correctif puisse être accéléré, maintenant qu'il a été connecté nsp, nos builds échouent.

Puis-je suggérer aux responsables de verrouiller cette conversation?
Pour tous ceux qui attendent une solution, cliquez simplement sur le bouton d'inscription et vous serez averti.

Si quelqu'un veut entreprendre le correctif, n'hésitez pas à ouvrir un PR.

Il existe déjà un PR pour cela https://github.com/moment/moment/pull/4326

Quelqu'un doit-il notifier nsp patch a été corrigé? https://nodesecurity.io/advisories/532

Ce problème a été corrigé dans la version 2.19.3. Veuillez mettre à jour en conséquence.

Je ne sais pas comment notifier NSP - @cristianstaicu pourriez-vous ou d'autres aider ici?

J'ai envoyé un e- mail à

Bonjour,

La vulnérabilité moment.js actuellement en suspens (https://nodesecurity.io/advisories/532) a été récemment corrigée et le correctif publié dans la v.2.19.3.

Quel est le processus pour signaler les mises à jour de l'état des avis? Cette adresse e-mail est la meilleure avenue que j'ai pu trouver.

Merci!

Je viens de recevoir une réponse indiquant que la base de données NSP devrait être mise à jour avec 2.19.3 comme version fixe.

Vérifié de mon côté que la 2.19.3 n'alerte plus.

Cette page vous a été utile?
0 / 5 - 0 notes