【问题标题】:Excluding slf4j-api from spring-security-saml2-core, we are getting a runtime exception NoClassDefFound: org/slf4j/LoggerFactory从 spring-security-saml2-core 中排除 slf4j-api,我们得到一个运行时异常 NoClassDefFound: org/slf4j/LoggerFactory
【发布时间】:2022-01-17 16:24:18
【问题描述】:

在 log4j 零日漏洞之后,我们开始查看是否还有更多使用 slf4J 或更低版本的 log4j 的工件。

检查 mvn 依赖树,我们发现 spring-security-saml2-core 正在使用 slf4j,我们试图从工件中排除它。但是,我们收到以下运行时异常: -java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 在 org.opensaml.DefaultBootstrap.getLogger(DefaultBootstrap.java:246) 在 org.opensaml.DefaultBootstrap.initializeXMLSecurity(DefaultBootstrap.java:189) 在

【问题讨论】:

    标签: java log4j slf4j spring-security-saml2


    【解决方案1】:

    如果您指的是 CVE-2021-44228 漏洞(又名 Log4Shell),那么 Slf4J 不是易受攻击的库,因此您不必排除它。对于 2 到 2.15.0 之前的版本,只有 Log4j-core 受此特定漏洞的影响 见https://nvd.nist.gov/vuln/detail/CVE-2021-44228

    正如@eray-tufay 指出的那样,目前还有其他已知漏洞(还有许多可能仍在等待被发现)。他给出的例子是https://cve.report/CVE-2021-4104:

    请注意,此问题仅在专门配置为使用 JMSAppender 时才会影响 Log4j 1.2,这不是默认设置

    因此,为了防止当前和未来的漏洞:

    【讨论】:

    • 这是不正确的。版本 1.x 也存在漏洞。 CVE-2021-4104 access.redhat.com/security/cve/CVE-2021-4104:“在 1.x 版的 Java 日志库 Apache Log4j 中发现了一个漏洞。Log4j 1.x 中的 JMSAppender 容易受到不可信数据的反序列化。这允许远程攻击者在如果部署的应用程序配置为使用 JMSAppender 和攻击者的 JMS 代理,则服务器。"
    • 我更新了响应以更准确。我指的只是 CVE-2021-44228 漏洞(又名 Log4Shell),而不是您发现的那个
    • 更准确地说,只有 log4j-core 是易受攻击的(CVE 描述) log4j-api 不是因为它只包含 api,核心是实现。
    • 也围绕这个:slf4j-over-log4j(这是将 log4j2 调用“重定向”到 slf4j 的方式)使用 log4j-api 并且确实是安全的。
    • 确实,只有核心 jar 易受攻击。早期的报道称该 api 也很脆弱,但似乎这些不准确。
    猜你喜欢
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2015-11-30
    相关资源
    最近更新 更多