2014 年 9 月披露的 Shellshock (CVE-2014-6271) 是 Bash 解析環境變數時的程式碼注入漏洞。攻擊者可透過精心構造的環境變數,在 Bash 啟動時執行任意命令,影響範圍極廣:
在終端執行以下命令:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
| 輸出內容 | 狀態 |
|---|---|
vulnerable | 存在漏洞,須立即修補 |
bash: warning: x: ignoring function definition attempt | 已修補(安全版本) |
# 更新 bash 套件
sudo yum update bash -y
# 或 dnf
sudo dnf update bash -y
# 建議重啟系統或重啟受影響服務
sudo reboot
sudo apt-get update
sudo apt-get install --only-upgrade bash -y
# Ubuntu 通常無需重啟,但建議重啟相關服務
wget https://ftp.gnu.org/gnu/bash/bash-5.2.tar.gz
tar xf bash-5.2.tar.gz
cd bash-5.2
./configure --prefix=/usr --bindir=/bin
make
sudo make install
# 驗證版本
bash --version
再次執行檢測命令,確認輸出為「warning/error importing」即表示修補成功。
dash 或 sh(#!/bin/sh),減少攻擊面。() { :;} 模式的封鎖規則。Shellshock 是近十年影響範圍最廣的 Linux 基礎設施漏洞之一。核心對策只有一條:第一時間更新 Bash 至廠商提供的修補版本。建立自動化修補流程、納入漏洞掃描體系,才能從根本上降低類似風險。