我已将 log4j-core 依赖项升级到 2.15.0,以防止任何潜在的 Log4Shell 攻击。话虽如此,我无法从 1.2.17 升级 slf4j-log4j12 的间接 log4j 依赖项,因为 slf4j-log4j12 的最新稳定版本仍然依赖于 log4j 1.2.17。如果我没记错的话,这仍然会让我的 web 应用程序容易受到CVE-2019-17571的攻击。因此,在阅读可能的缓解策略时,我发现了这篇文章,其中建议:
防止Log4j中SocketServer类启用的socket端口向公网开放
谁能向我解释一下如何实现这一点以及这种解决方法是否足够?
只有从其他服务器接收消息的服务器才容易受到CVE-2019-17571. 基本上触发漏洞的唯一方法是运行:
java -jar log4j.jar org.apache.log4j.net.SocketServer <port> <config.properties> <log/directory>
Run Code Online (Sandbox Code Playgroud)
或在代码中执行等效操作。因此,大多数 Log4j 1.2 用户不易受到攻击。
然而,在您的情况下,您只需将绑定替换slf4j-log4j12为其 Log4j 2.x 等效项 ( log4j-slf4j-impl),然后就可以完全删除 Log4j 1.2。
编辑:不过,如果您想确定没有人会像上面那样使用该库,您可以删除该类。还考虑CVE-2021-4104到这一数额:
zip -d log4j.jar org/apache/log4j/net/SocketServer.class
zip -d log4j.jar org/apache/log4j/net/JMSAppender.class
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8057 次 |
| 最近记录: |