Apache Log4j SocketServer反序列化漏洞
反序列化
Log4j是美国阿帕奇(Apache)软件基金会的一款基于Java的开源日志记录工具。Log4j 1.2版本中包含的SocketServer类,在未添加额外验证的情况下,会对接收的序列化日志事件进行反序列化,在结合反序列化利用gadget时,可以远程执行任意代码。
Apache Log4j2 SmtpAppender证书验证不当漏洞
证书验证不恰当
Apache Log4j是美国阿帕奇(Apache)基金会的一款基于Java的开源日志记录工具。
Apache Log4j 2.12.3及2.13.1之前的版本中,SmtpAppender没有验证主机名称与SMTPS连接的SSL/TLS证书是否匹配,攻击者可以通过中间人攻击利用该漏洞拦截SMTPS连接,获取日志消息。
Apache Log4j2 远程代码执行漏洞
反序列化
Apache log4j是java中常用的日志记录组件。
由于log4j2默认支持JNDI在内的Lookup查找机制,当日志内容中包含${foo.bar}样式的内容时,会查找相应的值进行替换。因此当用户请求中的内容通过log4j作为日志内容记录时,攻击者可能通过恶意构造的内容,触发log4j的lookup方法,进而执行恶意代码。
Apache Log4j2 JDBC Appender远程代码执行漏洞
代码注入
Apache Log4j是美国阿帕奇(Apache)基金会的一款基于Java的开源日志记录工具,其2.0-beta7 到 2.17.0版本 (除2.3.2、2.12.4以外)存在远程代码执行漏洞。
在受影响版本中,当配置中使用JNDI LDAP数据源的JDBC Appender时,如果攻击者能够控制LDAP服务,则可通过JNDI注入恶意的payload,执行任意代码。
控制LDAP服务或配置文件的利用条件较为苛刻,实际场景中难以出现。
Apache Log4j JMSAppender反序列化漏洞
反序列化
Apache Log4j是美国阿帕奇(Apache)基金会的一款基于Java的开源日志记录工具。
当攻击者对 Log4j 配置具有写访问权限时,Log4j 1.2 中的 JMSAppender 容易受到不受信任数据的反序列化。攻击者可以提供 TopicBindingName 和 TopicConnectionFactoryBindingName 配置,导致 JMSAppender 执行 JNDI 请求,从而以类似于 CVE-2021-44228 的方式执行远程代码。
请注意,此问题仅在专门配置为使用 JMSAppender(非默认设置)时影响 Log4j 1.2。
Apache Log4j 1.2 已于 2015 年 8 月结束生命周期,用户应升级到 Log4j 2。
Apache Log4j2 基于上下文查找的远程代码执行漏洞
反序列化
Apache Log4j是Apache基金会的一款基于Java的开源日志记录工具。
在Apache Log4j 2.15.0中解决CVE-2021-44228的修复在某些非默认配置中不完整:当日志配置(如log4j2.xml)使用具有上下文查找(如$${ctx:loginId})或线程上下文映射模式(如%X, %mdc或者%MDC)时,攻击者可以使用 JNDI 查找构造恶意输入数据,从而导致信息泄漏和某些环境中的远程代码执行,以及在所有环境中都可以本地代码执行。
Apache Log4j2 自引用拒绝服务漏洞
未经控制的递归
Apache Log4j是Apache的一款基于Java的开源日志记录工具。
该工具的漏洞版本由于不能防止不受控制的递归而自引用查找,当攻击者能够控制线程上下文映射数据时,可以通过恶意构造的输入,如${${::-${::-$${::-$}}}}时造成拒绝服务。
漏洞利用依赖于日志配置,如配置文件中使用了${ctx:foo},同时代码中直接将用户输入传递到foo。
commons-codec:commons-codec 存在信息泄露漏洞
未授权敏感信息泄露
commons-codec:commons-codec 是一个包含各种格式(如 Base64 和 Hexadecimal)的简单编码器和解码器的包。
此软件包的受影响版本容易受到信息泄露的影响。当没有可以编码为字符串的字节数组值时,Base32 方法实现不会拒绝它,而是将其解码为任意值,该值可以使用相同的实现再次重新编码。这会导致信息泄露漏洞,攻击者可利用此漏洞获取通过base 32 字符串隧道传输的敏感信息。
Apache Log4j JDBCAppender SQL注入漏洞
SQL注入
Apache Log4j是美国阿帕奇(Apache)基金会的一款基于Java的开源日志记录工具。
根据设计,Log4j 1.2.x 中的 JDBCAppender 接受 SQL 语句作为配置参数,其中要插入的值是来自 PatternLayout 的转换器(SQL模板),通常会包含%m,如<param name="sql" value="INSERT INTO LOGS VALUES('%x','%d','%C','%p','%m')"/>。
如果攻击者恶意构造的字符串输入被作为日志记录,则可以操纵对应的SQL语句,通过注入语句执行额外的 SQL 查询。
此问题仅出现于配置为使用 JDBCAppender(非默认设置)时才会影响 Log4j。
从 2.0-beta8 版本开始,重新引入了 JDBCAppender,适当支持参数化 SQL 查询,并进一步自定义写入日志的列。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期,用户应升级到 Log4j2。
Apache Log4j Chainsaw反序列化漏洞
反序列化
Apache Chainsaw是一个图形化日志查看工具,可以读取Log4j的XMLLayout格式的日志文件。
在CVE-2020-9493 中发现 Apache Chainsaw 存在反序列化漏洞,而在 Chainsaw V2.0 之前,Chainsaw作为组件被打包进入了Apache Log4j 1.2.x当中,因此也存在反序列化漏洞。
当用户的输入被直接记录进入日志中,同时使用Chainsaw查看日志时(如java -cp log4j-1.2.17.jar org.apache.log4j.chainsaw.Main),攻击者可能触发此漏洞,执行任意代码。
Apache Log4j是一个基于Java的日志记录工具。
当攻击者对 Log4j 配置具有写访问权限或配置引用攻击者有权访问的 LDAP 服务时,所有 Log4j 1.x 版本中的 JMSSink 都容易受到不受信任数据的反序列化,从而执行远程代码。
评论