当前位置: 首页 > 知识库问答 >
问题:

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

卢健
2023-03-14

我已将log4j核心依赖项升级到2.15。0以防止任何潜在的Log4Shell攻击。也就是说,我无法从1.2升级slf4j-log4j12的间接log4j依赖项。17因为slf4j-log4j12的最新稳定版本仍然依赖于log4j 1.2。17.如果我没有弄错的话,我的网络应用程序仍然容易受到CVE-2019-17571的攻击。因此,在阅读可能的缓解策略时,我发现了这篇文章,其中建议:

阻止Log4j中SocketServer类启用的套接字端口打开到公共网络

请任何人向我解释一下如何实现这一目标,以及这一解决办法是否足够?

共有1个答案

慎旭尧
2023-03-14

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

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

或者在代码中执行等效操作。因此,大多数Log4j 1.2用户不易受到攻击。

但是,在您的情况下,您只需要将slf4j-log4j12绑定替换为它的log4j2。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
 类似资料:
  • 该版本现已分配给CVE-2022-22965。除了下面的好答案之外,请查看Spring Framework RCE:早期发布,因为它是本期最可靠和最新的网站。 根据不同的来源,我们在使用Spring Core库时似乎遇到了严重的安全问题。 https://securityboulevard.com/2022/03/new-spring4shell-zero-day-vulnerability-co

  • 我加载xml文件如下 使2类 我加载xml文件(temp.xml),然后序列化类2位置和头然后StringReader,它从文件中读取字符串,然后类序列化成为反序列化 但我看到error error msg在XML文档中有一个错误(1,1)。哪里?:at系统。Xml。序列化。XmlSerializer。在系统上反序列化(XmlReader XmlReader、String encodingStyl

  • 问题内容: 场景: 考虑以下是JSON: 如果注意到的话,数据的结构方式是没有硬编码键提及/ 它基本上只是值。 问题: 我无法解析任何动态的JSON。 问题: 有人能找到这种JSON解析的解决方案吗?我尝试了go-simplejson,gabs和default 但没有运气。 注意: 上面的JSON仅用于示例。而且有许多应用程序正在使用当前的API,因此我不想更改数据的结构。我的意思是我不能更改为以

  • 场景: 考虑以下是JSON: 如果您注意到,数据的结构是这样的,即没有硬编码键提到/基本上只是值。 问题:我无法解析任何动态 JSON。 问题:有人能找到这种JSON解析的解决方案吗?我试着简单点 注意:以上JSON只是示例。有很多应用程序正在使用当前的API,所以我不想改变数据的结构。我的意思是我不能换成如下的东西: 然后我可以定义< code>struct

  • 问题内容: 您如何向外行解释Passport的序列化和反序列化方法的工作流程。 叫到哪里去了? 我们紧接着在工作流程中调用它吗? 我仍在努力寻找解决方案。我有一个完整的工作应用程序,没有遇到任何类型的错误。 我只是想了解这里到底发生了什么? 任何帮助表示赞赏。 问题答案: 叫到哪里去了? 用户ID(您作为函数的第二个参数提供)被保存在会话中,以后用于通过函数检索整个对象。 确定应将用户对象的哪些数

  • 如题目所述,想请教一下大佬们在Java中序列化与反序列化的意义是什么,如何理解Java的序列化和反序列化?