在 redcloth gem >= v4.0.0 的 sanitize_html 函数中发现了一个正则表达式拒绝服务(ReDoS)问题。该漏洞允许攻击者通过提供精心构造的负载来引发拒绝服务(DoS)。
根据 OWASP 的说法,正则表达式拒绝服务(ReDoS)是一种拒绝服务攻击,它利用大多数正则表达式实现可能达到极端情况的事实,导致它们运行得非常缓慢(与输入大小呈指数关系)。攻击者随后可以使使用正则表达式的程序进入这些极端情况,并长时间挂起。更多信息,请参阅 OWASP ReDoS。
sanitize_html 函数使用以下正则表达式来清理 HTML 标签。 /<(/)([A-Za-z]\w*)([^>]?)(\s?/?)>/
sanitize_html 函数中提供的用户输入进行匹配。该仓库的最后一次提交是在 2019-03-28,最后一个版本 v4.3.2 于 2016-05-24 发布。该项目已不再维护。