从 spring-security-saml2-core 中排除 slf4j-api,我们得到运行时异常 NoClassDefFound: org/slf4j/LoggerFactory
Excluding slf4j-api from spring-security-saml2-core, we are getting a runtime exception NoClassDefFound: org/slf4j/LoggerFactory
在 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)
在
如果您指的是 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:
Note this issue only affects Log4j 1.2 when specifically configured to use JMSAppender, which is not the default
因此,要防范当前和未来的漏洞:
- 在您的构建管道中包含针对新漏洞的自动检查,例如 https://owasp.org/www-project-dependency-check/
- 不断升级您的依赖项以使用最新版本
在 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) 在
如果您指的是 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:
Note this issue only affects Log4j 1.2 when specifically configured to use JMSAppender, which is not the default
因此,要防范当前和未来的漏洞:
- 在您的构建管道中包含针对新漏洞的自动检查,例如 https://owasp.org/www-project-dependency-check/
- 不断升级您的依赖项以使用最新版本