Следующее регулярное выражение, используемое для анализа дат, указанных как строки, уязвимо для ReDoS:
/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i
Замедление умеренно низкое: для 50 000 символов время сопоставления составляет около 2 секунд. Однако я все же предлагаю одно из следующего:
При необходимости я могу привести реальный пример, показывающий замедление.
Для уточнения, это в matchWord
регулярное выражение в /src/lib/parse/regex.js
здесь .
Вот железнодорожная диаграмма регулярного выражения . Из этого мы видим, что группировка с повторением связана с анализом арабских символов. Было бы полезно, если бы кто-то, кто понимает как регулярные выражения, так и арабский язык, мог взяться за это.
Также полезен обзор ReDoS .
Я возьму, что это еще никто не начал
@hamiltondanielb все твое :)
@cristianstaicu
При необходимости я могу привести реальный пример, показывающий замедление.
Хотелось бы увидеть пример, если это возможно :)
@ Drag0s отправил его на ваш личный адрес электронной почты.
К вашему сведению, это было добавлено в NSP (см. Здесь ), так что это, вероятно, скоро начнет ломать сборки людей.
@hamiltondanielb - Вы что-нибудь
Только что у нас был перерыв в сборке 👯
Печально, что проблема должна была стать достоянием общественности, прежде чем она была исправлена. Выпуск открыт 8 сентября, сегодня опубликовано сообщение NSP. @cristianstaicu, возможно, вам стоило напомнить сопровождающим о крайнем сроке раскрытия информации, чтобы придать этому импульс.
@mattgrande в этом есть мета: оказывается, версия nsp, к которой мы были прикреплены (2.8.1), зависит от момента (через joi), поэтому он сообщал об уязвимости в своей собственной зависимости:
Обновление до nsp 3.1.0 разрешило эту проблему, потому что зависимости больше нет - так что остерегайтесь этого, если вы напрямую не зависите от момента.
Есть ли исправление для этого?
Посоветуйте, пожалуйста, какое исправление?
Исправление еще не опубликовано.
Пожалуйста, если вы заинтересованы в получении обновлений от сопровождающих, подпишитесь на уведомления об обновлениях этой проблемы, нажав кнопку «Подписаться» в правом столбце.
Чтобы добавить для этого исключение nsp
, добавьте файл .nsprc
:
{
"exceptions": [
"https://nodesecurity.io/advisories/532"
]
}
Спасибо @ westy92 ! Сохранена моя сборка.
Привет, @ westy92 и @ jacob-go. У меня есть следующий код.
var tasksMethods = require ('gulpfile-ninecms');
gulp.task ('nsp', tasksMethods.nsp);
Это не улавливает исключение файла .nsprc. На данный момент он продолжает выдавать мне ошибку уязвимости.
Я добавил файл в корень проекта. Что мне не хватает?
@Dexterslab, мы используем gulp-nsp
, который отлично работает, когда .nsprc
находится в каталоге проекта (на том же уровне, что и package.json
). Может быть, попробовать использовать gulp-nsp
напрямую?
@cristianstaicu @mattgrande , это
Мы были бы признательны, если исправление этой проблемы можно ускорить, поскольку теперь, когда она была зарегистрирована в nsp, наши сборки не работают.
Могу я предложить обслуживающему персоналу заблокировать этот конво?
Для всех, кто ждет исправления, просто нажмите кнопку подписки, и вы получите уведомление.
Если кто захочет заняться исправлением, смело открывайте пиар.
Для этого уже есть пиар https://github.com/moment/moment/pull/4326
Нужно ли кому-то уведомлять nsp
это исправлено? https://nodesecurity.io/advisories/532
Это было исправлено в версии 2.19.3. Пожалуйста, обновите соответственно.
Я не уверен, как уведомить NSP - @cristianstaicu не могли бы вы или другие помочь здесь?
Я написал на адрес [email protected] :
Здравствуйте,
Нынешняя уязвимость moment.js (https://nodesecurity.io/advisories/532) была недавно исправлена, и исправление выпущено в версии 2.19.3.
Каков процесс сообщения об обновлениях статуса рекомендаций? Этот адрес электронной почты - лучшее, что я мог найти.
Благодаря!
Только что получил ответ, что базу данных NSP следует обновить до версии 2.19.3 в качестве фиксированной.
С моей стороны проверено, что 2.19.3 больше не предупреждает.
Самый полезный комментарий
Мы были бы признательны, если исправление этой проблемы можно ускорить, поскольку теперь, когда она была зарегистрирована в nsp, наши сборки не работают.