【发布时间】:2021-12-11 01:41:03
【问题描述】:
我有一个非常旧的Solr 版本,我一直在尝试看看它是否受到每个人都在担心的Log4Shell vulnerability (CVE-2021-44228) 的影响。
CVE似乎只适用于以后的版本,但有同事不买账,所以我想弄清楚真相。
【问题讨论】:
我有一个非常旧的Solr 版本,我一直在尝试看看它是否受到每个人都在担心的Log4Shell vulnerability (CVE-2021-44228) 的影响。
CVE似乎只适用于以后的版本,但有同事不买账,所以我想弄清楚真相。
【问题讨论】:
我有 95% 的把握这对于旧版本的 Log4j 来说没问题。三个原因:
我使用的是 1.2 版。我在我的系统上找到了 Log4j JAR 文件,将其解压缩,然后查找任何提及 JNDI 的内容:
find / -iname '*log4j*'
unzip /etc/opt/jetty/lib/ext/log4j-1.2.17.jar | grep -i jndi
那什么也没带回来,所以我在那里感觉很好。 CVE 表示您通常可以通过查看 JAR 文件找到一些东西。它建议你这样做:
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
这对我没有任何作用。
我翻遍了changelog for Log4j。它说对于 2.0-beta9 版本:
添加 JNDILookup 插件。修复 LOG4J2-313。感谢 Woonsan Ko。
所以我认为可以肯定地说 JNDI 在此之前在 Log4j 中不存在。 Jira ticket that added it is here。
我检查了old manual for version 1.2 并将其与最新版本进行了比较。最近,有一个“查找”部分解释了 JNDI 的工作原理。在 1.2 版中,该部分不存在。
我觉得……还好吧?
【讨论】:
JMSAppender,log4j 1.x 似乎很容易受到攻击。见github.com/apache/logging-log4j2/pull/…
Ralph Goers(Apache Log4J 维护者)说:
此漏洞有两个方面。
- Log4j 2 的查找机制(属性解析器)正在记录的消息文本上执行。这意味着,如果应用程序 记录用户输入(几乎每个人都这样做)用户可能会导致 要调用的查找机制。
- Log4j 2 在各个地方都支持 JNDI,包括作为查找。 JNDI 本身非常不安全。这些的综合效果是什么 使其成为 Log4j 2 的严重严重性问题。Log4j 1 以及 Logback,两者都有使用 JNDI 的组件,并且都不做任何事情 限制 JNDI 漏洞。在 Log4j 1 的情况下,它是 JMS 附加器。曝光较小,但仍然存在。如果有人 可以访问他们可以想象的日志记录配置 导致坏事发生。
【讨论】: