我已将 log4j-core 依赖项升级到 2.15.0,以防止任何潜在的 Log4Shell 攻击。话虽如此,我无法从 1.2.17 升级 slf4j-log4j12 的间接 log4j 依赖项,因为 slf4j-log4j12 的最新稳定版本仍然依赖于 log4j 1.2.17。这仍然让我的网络应用程序容易受到CVE-2019-17571 https://www.cvedetails.com/cve/CVE-2019-17571/如果我没有记错的话。因此,在阅读有关可能的缓解策略时,我遇到了这个article https://nsfocusglobal.com/apache-log4j-deserialization-remote-code-execution-cve-2019-17571-vulnerability-threat-alert/其中建议:
阻止 Log4j 中 SocketServer 类启用的套接字端口
从向公共网络开放
谁能向我解释一下如何实现这一点以及这种解决方法是否足够?
只有从其他服务器接收消息的服务器才容易受到攻击CVE-2019-17571
。基本上触发漏洞的唯一方法是运行:
java -jar log4j.jar org.apache.log4j.net.SocketServer <port> <config.properties> <log/directory>
或在代码中执行等效操作。因此,大多数 Log4j 1.2 用户不易受到攻击。
但是,就您而言,您只需更换slf4j-log4j12 https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12与其 Log4j 2.x 等效项绑定(log4j-slf4j-impl https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl)并且您可以完全删除 Log4j 1.2。
Edit:不过,如果您想确定没有人会像上面那样使用该库,您可以删除该类。还考虑到CVE-2021-4104 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4104这相当于:
zip -d log4j.jar org/apache/log4j/net/SocketServer.class
zip -d log4j.jar org/apache/log4j/net/JMSAppender.class
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)