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

Shellshock(CVE-2014-6271)处置要点

GNU Bash 处理环境变量中的函数定义时存在解析缺陷,可能经 CGI 等传递环境变量的通道被触发;修复方式是按发行版升级 bash 并验证版本,重点排查仍暴露 CGI 的老系统。

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

Shellshock 是什么

Shellshock(CVE-2014-6271)是 GNU Bash 处理环境变量中函数定义时的解析缺陷:攻击者可通过能传递环境变量的通道(典型是 CGI)在目标上执行命令。影响面大的原因是 Bash 在 Unix/Linux 上无处不在,且当时大量老系统仍以 CGI 方式对外提供接口。修复方式是按发行版升级 bash,并确认版本已进入修复区间。

基本信息

漏洞编号CVE-2014-6271(后续变体如 CVE-2014-7169)
影响组件GNU Bash
典型入口CGI/FCGI 等能把请求头写入环境变量的通道
修复方式按发行版升级 bash 包,并重启依赖它的服务
遗留风险仍暴露 CGI 的老业务系统、老旧嵌入式设备

自检命令(仅输出字符串,无攻击行为)

自检命令(仅输出字符串,无攻击行为)
env x='() { :;}; echo NOT-PATCHED' bash -c 'echo ok'   # 环境变量里塞函数定义
# 输出 NOT-PATCHED 表示未修复;只输出 ok 表示已修复
# 该检测对 CVE-2014-6271 有效,变体需以发行版公告为准

版本与升级

版本与升级
bash --version | head -1   # 查看当前版本
rpm -q bash                 # RHEL/CentOS 系查询包版本
rpm -q --changelog bash | head -20   # 看补丁记录,确认修复是否包含
dpkg -l bash                # Debian/Ubuntu 系查询
apt-get install --only-upgrade bash   # 或 yum update bash

典型使用场景

  • 老业务系统排查:Web 服务仍以 CGI 方式运行脚本,优先确认 bash 与组件版本
  • 资产盘点:批量采集 bash 版本,先覆盖互联网可达主机
  • 加固基线:把 bash 版本纳入基线检查项,避免新装系统漏更
  • 事件排查:怀疑被利用时检查 Web 日志中的异常请求头与异常子进程

处置优先级判断

特征风险判断动作
互联网可达 + 存在 CGI高最优先升级并临时收敛入口
内网 Server + 老发行版中高按窗口升级,检查依赖服务
容器镜像内旧 bash中重建镜像,不进入运行容器热改
无外部输入通道的终端设备低纳入常规基线更新
同批变体(如 CVE-2014-7169 及后续补丁)需一并覆盖:判断标准是升级到发行版标注的修复版本,而不是只比对某一个版本号。
只升级 bash 不重启依赖它的服务,运行中的进程可能仍持有旧解释器实例,漏洞并未真正消除。

易错点

  • 只升级 bash 不重启依赖它的服务:运行中的进程仍持有旧解释器实例,等于没修
  • 自检命令在部分外壳里会因为引号处理不同而失真,应固定用 bash -c 执行并核对输出
  • 只测一台机器就代表整批资产:镜像、容器基础层与备份系统往往版本不同
  • 把仍有 CGI 的老系统当作「业务特殊」长期例外,实际上这类系统正是该漏洞的典型入口

数据来源与参考

  • Red Hat Shellshock 处置指引(access.redhat.com)
  • NVD CVE-2014-6271 记录
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌