首页/安全/漏洞与攻击面速查/Log4Shell(CVE-2021-44228)处置要点
漏洞基础与评分46 条

Log4Shell(CVE-2021-44228)处置要点

Apache Log4j 2 在 2.0-beta9 至 2.14.1 中,日志记录可触发 JNDI 查询且未限制外部地址,形成远程代码执行风险;处置核心是清点依赖版本、升级到修复版本,并监控异常出站连接。

漏洞与攻击面速查安全更新于 2026-10-13

Log4Shell 是什么

CVE-2021-44228(业内称 Log4Shell)是 Apache Log4j 2 的远程代码执行问题:当日志内容里出现形如 ${jndi:...} 的表达式时,组件会去执行 JNDI 查询,且默认允许加载远程地址返回的对象,于是任何被记录进日志的用户输入都可能成为触发点。它的影响面之所以大,是因为日志记录几乎无处不在:请求头、参数、用户代理都可能被写入日志,且不需要认证。处置的关键是分清「升级」与「缓解」两种手段的适用版本,并确认所有运行实例都已生效。

基本信息

CVE 编号CVE-2021-44228,同族还有 45046、45105、44832
影响版本Log4j 2.0-beta9 至 2.14.1
修复版本2.15.0 起步修复主问题,2.16.0 默认关闭 JNDI 并移除消息查找,2.17.x 继续修复相关变体
Java 7 与更早需使用对应分支的修复版本(2.12.x 与 2.3.x 系列)
临时缓解2.10 至 2.14.1 可设 log4j2.formatMsgNoLookups=true,或移除 JndiLookup 类
检测线索盘点 log4j-core 依赖 + 监控出站 LDAP/RMI 连接 + 排查日志中的 jndi 表达式

处置步骤

  • 清点依赖:应用、基础镜像、第三方组件与大数据组件链里所有 log4j-core 版本
  • 判断可利用性:确认触达路径(是否有未认证输入被写入日志)与出站网络是否被限制
  • 先降暴露:出站访问限制与 WAF 规则可争取时间,但不能替代升级
  • 执行升级:优先升到 2.17.x;受限时至少升到 2.16.0,并确认运行进程加载的版本
  • 验证与记录:确认 JAR 版本、进程加载路径与出站行为,把证据挂回编号
  • 回归业务:升级后确认日志输出、格式与下游采集链路正常

依赖清点示例

依赖清点示例
find / -name "log4j-core*.jar" 2>/dev/null
unzip -p log4j-core-*.jar META-INF/MANIFEST.MF | head
# Maven 项目:mvn dependency:tree | grep log4j
# 检查运行进程实际加载的 JAR,而不只是文件系统里是否存在
# 常见遗漏:基础镜像、离线包、第三方中间件自带依赖、历史备份目录

配置层缓解(示例)

配置层缓解(示例)
JVM 参数:-Dlog4j2.formatMsgNoLookups=true
或移除类:zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
# 注意:2.16.0 起相关查找默认关闭,无需再依赖上述参数
# 缓解手段只是临时措施,升级才是根治,两者不要互相替代

手段对照

手段适用情况局限
升级版本所有可升级场景需要回归测试与发布窗口
移除危险类无法立即升级且用 2.0 至 2.9 的场景后续升级或回滚可能让问题复现
配置开关2.10 至 2.14.1 的临时缓解不覆盖同族其他变体
出站网络限制争取时间的补充措施不能阻止已在内网可达的目标
升级、删类、配置三种手段并存的环境容易出现漏改节点,处置后必须复测。重点确认运行进程实际加载的版本,而不是只看文件系统里有没有新 JAR。
排查日志里的 ${jndi: 表达式也有价值:它能提示历史探测痕迹,但日志内容本身可能被编码变形,不能仅凭关键字判断是否被利用,应结合出站连接记录。

易错点

  • 只删 JndiLookup 类而未升级:后续版本升级或回滚时问题可能复现,升级后要重新确认生效版本号
  • 只用配置开关就结案:该开关只覆盖 2.10 之后的版本,且不能覆盖同族其他编号
  • 只扫描文件系统不查运行进程:容器与多版本共存环境下,实际加载的可能是另一份旧 JAR
  • 忽略基础镜像与第三方组件:JAR 藏在镜像层或中间件自带目录里,按应用清单排查会漏
  • 升级后不做日志回归:新版本对查找语法的处理方式有变化,可能导致日志内容异常或采集断链

数据来源与参考

  • Apache Log4j 安全公告(logging.apache.org)
  • CISA Log4Shell 处置指引(cisa.gov)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌