Moment: 脆弱的正则表达式

创建于 2017-09-08  ·  24评论  ·  资料来源: moment/moment

以下用于解析指定为字符串的日期的正则表达式容易受到ReDoS的攻击:

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

减速幅度适中:在2秒的匹配时间内有50.000个字符。 但是,我仍然建议以下之一:

  • 删除正则表达式,
  • 锚定正则表达式,
  • 限制重复可以匹配的字符数,
  • 限制输入大小。

如果需要,我可以提供一个显示速度下降的实际示例。

Bug Up-For-Grabs

最有用的评论

我们很感激它能尽快解决此问题,因为它已被登录到nsp中,并且构建失败。

所有24条评论

为了澄清起见,这在matchWord正则表达式中,在/src/lib/parse/regex.js这里

这是正则表达式的铁路图。 由此可见,重复分组与解析阿拉伯字符有关。 如果既懂正则表达式又懂阿拉伯语的人对此有所帮助,将很有帮助。

ReDoS概述也很有帮助。

不好意思,这还没有人开始

@hamiltondanielb所有你的:)

@cristianstaicu
如果需要,我可以提供一个显示速度下降的实际示例。

如果可能的话,我想看个例子:)

@ Drag0s通过您的私人电子邮件发送了它。

仅供参考,这已添加到NSP中(请参阅此处),因此这可能很快就会开始破坏人们的构建。

@hamiltondanielb-你有没有去研究这个?

刚刚完成构建build

令人遗憾的是,该问题必须在解决之前公开。 NSP公告于9月8日发行,今天已发布。 @cristianstaicu也许您应该提醒维护者有关披露的截止日期,以便为此

@mattgrande对此有一种

1__bash

升级到nsp 3.1.0可以解决此问题,因为不再存在依赖关系-如果您不直接依赖时刻,请提防这一点。

有没有解决办法?

请告知任何可用的修复程序?

尚未发布任何修复程序。

请,如果您有兴趣从维护者那里获取更新,请单击右侧列中的“订阅”,以订阅有关此问题的更新的通知。

要为此添加nsp例外,请添加.nsprc文件:

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

谢谢@ westy92 ! 保存了我的版本。

@ westy92和@ jacob-go。 我有以下代码。
var taskMethods = require('gulpfile-ninecms');
gulp.task('nsp',tasksMethods.nsp);
它没有选择.nsprc文件异常。 暂时让我发现漏洞。
我将文件添加到项目的根目录。 我有什么想做的吗?

@Dexterslab我们正在使用gulp-nsp ,当.nsprc在项目目录(与package.json相同级别)中时,它可以正常工作。 也许尝试直接使用gulp-nsp

@cristianstaicu @mattgrande卢森堡也有这种情况吗?

我们很感激它能尽快解决此问题,因为它已被登录到nsp中,并且构建失败。

我可以建议维护者锁定此convo吗?
对于等待修复的每个人,只需点击订阅按钮,您就会收到通知。

如果有人要进行修复,请随时打开PR。

有人需要通知nsp这已被修补吗? https://nodesecurity.io/advisories/532

此问题已在版本2.19.3中修复。 请相应地更新。

我不确定如何通知[email protected]您或其他人可以在这里提供帮助吗?

我通过电子邮件发送了[email protected]

你好,

当前突出的moment.js漏洞(https://nodesecurity.io/advisories/532)在最近补丁和修复发布在v.2.19.3。

报告咨询状态更新的过程是什么? 这个电子邮件地址是我能找到的最佳途径。

谢谢!

刚刚得到答复,应将NSP DB更新为固定版本2.19.3。

经过我的验证,2.19.3不再发出警报。

此页面是否有帮助?
0 / 5 - 0 等级