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 不重启依赖它的服务,运行中的进程可能仍持有旧解释器实例,漏洞并未真正消除。