我有一个非常旧的Solr版本,我一直在尝试查看它是否受到每个人都担心的Log4Shell 漏洞( CVE-2021-44228 ) 的影响。
CVE似乎只适用于更高版本,但一位同事并不买账,所以我试图找出真相。
mli*_*ner 23
我大约 95% 确信这对于旧版本的 Log4j 来说没问题。三个原因:
我的是1.2版本。我在系统上找到了 Log4j JAR 文件,将其解压缩,然后查找任何提及 JNDI 的内容:
find / -iname '*log4j*'
unzip /etc/opt/jetty/lib/ext/log4j-1.2.17.jar | grep -i jndi
Run Code Online (Sandbox Code Playgroud)
那什么也没带回来,所以我在那里感觉很好。CVE 表示您通常可以通过查看 JAR 文件来找到某些内容。它建议你这样做:
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Run Code Online (Sandbox Code Playgroud)
那对我没有任何作用。
我深入研究了Log4j 的变更日志。对于 2.0-beta9 版本,它说:
添加 JNDILookup 插件。修复 LOG4J2-313。感谢高云山。
所以我认为可以肯定地说,在此之前 Log4j 中不存在 JNDI。添加它的 Jira 票证在这里。
我查看了1.2版本的旧手册并将其与最新版本进行了比较。最新的“查找”部分解释了 JNDI 的工作原理。在 1.2 版本中,该部分不存在。
我觉得这……还好吧?
Ralph Goers(Apache Log4J 维护者)说:
\n\n\n该漏洞有两个方面。
\n\n
\n- Log4j 2\xe2\x80\x99s 查找机制(属性解析器)正在记录的消息文本上执行。这意味着,如果应用程序正在记录用户输入(几乎每个人都这样做),则用户可能会导致调用查找机制。
\n- Log4j 2 在多个地方支持 JNDI,包括作为查找。JNDI 本身非常不安全。这些因素的综合影响使其成为 Log4j 2 的严重严重问题。Log4j 1 和 Logback 都具有使用 JNDI 的组件,并且都没有采取任何措施来限制 JNDI 漏洞。对于 Log4j 1,它是 JMS\nAppender。曝光较小,但仍然存在。如果某人\n可以访问日志记录配置,他们\n可能会导致不好的事情发生。
\n
因此,结论是 Log4J 1.x 是安全的,并且不会受到 Log4Shell 的影响,除非您使用 JMS 附加程序。在这种情况下,您必须分析您在附加程序中所做的事情。
\n| 归档时间: |
|
| 查看次数: |
26425 次 |
| 最近记录: |