安全研究所 | JNDI注入的一种新攻击面-CVE-2024-20931分析
💡
原文中文,约1600字,阅读约需4分钟。
📝
内容提要
Oracle官方发布的2024年1月补丁修复了Weblogic T3\IIOP协议的远程命令执行漏洞CVE-2024-20931。该漏洞由亿格云安全研究员Glassy在2023年10月提交给Oracle。补丁限制了绑定ForeignOpaqueReference对象时对jndiEnvironment中providerURL的设置,并对lookup的JNDI链接的协议做了严格限制。漏洞的挖掘还有可能通过寻找其他实现OpaqueReference接口的类的getReferent函数,绕过补丁中的JNDIUtils.isValidJndiScheme函数,以及在java.naming.provider.url为空的情况下寻求代码执行的可能性。
🎯
关键要点
- Oracle发布的2024年1月补丁修复了Weblogic T3\IIOP协议的远程命令执行漏洞CVE-2024-20931。
- 该漏洞由亿格云安全研究员Glassy在2023年10月提交,属于CVE-2023-21839补丁的绕过。
- CVE-2023-21839漏洞分析显示,恶意ForeignOpaqueReference对象的getReferent函数会导致JNDI注入。
- Oracle的补丁限制了绑定ForeignOpaqueReference对象时对jndiEnvironment中providerURL的设置,并对lookup的JNDI链接协议进行了严格限制。
- CVE-2024-20931的挖掘分析指出,可能的攻击路径包括寻找其他实现OpaqueReference接口的类、绕过JNDIUtils.isValidJndiScheme函数,以及在java.naming.provider.url为空时寻求代码执行。
- 通过AQjmsInitialContextFactory的初始化,成功实现了二次JNDI注入,达成远程代码执行。
- 该漏洞的特点在于关注Context的初始化阶段,而非直接在lookup函数上进行攻击,显示出新的攻击思路。
➡️