如何缓解ApacheLog4j反序列化RCE(CVE-2019-17571)

2022-06-26 00:00:00 java log4j
我已将我的log4j-core依赖项升级到2.15.0,以防止任何潜在的Log4Shell攻击。也就是说,我无法将slf4j-log4j12的间接log4j依赖从1.2.17升级,因为slf4j-log4j12的最新稳定版本仍然依赖于log4j 1.2.17。如果我没有弄错的话,这仍然使我的Web应用程序容易受到CVE-2019-17571的攻击。因此,在阅读有关可能的缓解策略的文章时,我看到了article,它建议:

阻止Log4j中的SocketServer类启用的套接字端口 向公网开放

谁能向我解释一下如何实现这一点,以及此解决方法是否足够?


解决方案

只有从其他服务器接收消息的服务器才容易受到CVE-2019-17571的攻击。基本上,触发该漏洞的唯一方法是运行:

java -jar log4j.jar org.apache.log4j.net.SocketServer <port> <config.properties> <log/directory>

或在代码中执行相同的操作。因此,大多数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

相关文章