安全研究所 | 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函数上进行攻击,显示出新的攻击思路。
🏷️

标签

➡️

继续阅读