聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
Nuclei 是一款由 ProjectDiscovery 创建的热门开源漏洞扫描器,用于扫描网站中的漏洞和其它弱点。该项目利用由1万多个 YAML 模板构成的基于模板的扫描系统,在网站中扫描已知漏洞、配置不当、被泄露的配置文件、webshell 和后门。
这些YAML模板还包括一个代码协议,可在用于扩展模板功能的设备上在本地执行命令或脚本。每个模板都被一个摘要哈希“签名”,用于验证该模板并未修改以包含恶意代码。
该摘要哈希以 # digest: <hash> 的格式被增加到模板底部。
Wiz 公司的研究员发现了一个新的漏洞CVE-2024-43405,即使模板被修改为包含恶意代码,它也会绕过Nuclei 的签名验证。该漏洞是由基于 Go 的正则表达式签名验证以及YAML解析器在验证该签名时处理换行符的方式引发的。
在验证签名时,Go 的验证逻辑将 \r 当作同一行的一部分。然而,该YAML解析器将其解析为一个换行符。这一错误匹配导致攻击者可注入恶意内容绕过验证,但在被 YAML 解析器处理时仍被执行。
另外一个问题在于 Nuclei 处理多个 #digest: 签名行的方式,因为该流程仅检查模板中第一次出现的 #digest 而忽视该模板后来发现的其它 #digest。在第一个合法的摘要后增加多个恶意的 “#digest: ” payload 即可利用该问题。这些payload 中包含一个恶意的 “code” 不分,之后当使用该模板时,该部分就会被注入并执行。
Wiz 公司的研究员 Guy Goldenberg 提到,“通过对错配的新行解释的洞察,我们构建了一个模板,可利用Go 正则表达式实现和YAML解析器之间的差距。将 \r 用作换行符,我们可以在模板中包含第二个 #digest: 行,避开签名验证流程,但会被YAML解释器解析和执行。”
Wiz 在2024年8月14日负责任地将该漏洞报送给 ProjectDiscovery,并在9月4日的 Nuclei v3.3.2中修复了该漏洞。建议仍然使用 Nuclei 老旧版本的用户更新至最新版本。Goldenberg 还建议在虚拟机或隔离环境中使用 Nuclei,阻止恶意模板遭潜在利用。
.NET Core 开源库被曝漏洞,可使恶意软件逃避检测,无补丁
https://www.darkreading.com/vulnerabilities-threats/active-directory-flaw-can-crash-any-microsoft-server-connected-to-the-internet
题图:Pexels License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~