Shellshock (CVE-2014-6271、CVE-2014-7169) 允許攻擊者透過環境變數注入任意指令,影響 Bash 1.14~4.3。雖屬 2014 年漏洞,但嵌入式裝置、舊系統仍可能未修補。本文提供檢測指令、各發行版修補命令、驗證方式與緩解措施。
# CVE-2014-6271 基礎漏洞
env x='() { :;}; echo VULNERABLE' bash -c "echo TEST"
# 輸出含 "VULNERABLE" 即受影響
# CVE-2014-7169 繞過補丁 (需 bash 解析函數定義)
env X='() { (a)=>\' bash -c "echo date"; cat echo
# 若顯示日期時間則受影響
| 發行版 | 修補命令 | 備註 |
|---|---|---|
| Debian/Ubuntu | apt update && apt install --only-upgrade bash | Debian 6/7/8、Ubuntu 10.04~14.04 需啟用 LTS/old-releases 源 |
| CentOS/RHEL 6/7 | yum update bash | RHEL 需有效訂閱 |
| Fedora | dnf update bash | |
| openSUSE | zypper update bash | |
| Alpine | apk upgrade bash | |
| Arch | pacman -Syu bash |
# 再次執行檢測指令,不應輸出 VULNERABLE
env x='() { :;}; echo VULNERABLE' bash -c "echo TEST"
# 僅輸出 TEST 即安全
# 確認版本 (補丁版本號通常不變,但 changelog 含 CVE 編號)
bash --version
rpm -q --changelog bash | grep -i shellshock
dpkg -l bash | grep ^ii
/bin/sh 或關鍵服務解釋器:dpkg-reconfigure dash (Debian/Ubuntu)。SetEnvIf、Nginx fastcgi_param、SSH AcceptEnv 最小化)。() { 模式的 HTTP 標頭/參數。docker pull ubuntu:14.04 等已修補版本。ForceCommand、git shell、sudo 環境變數傳遞。立即檢測並修補所有 Linux 系統,封堵這個經典且毀滅性的遠端程式碼執行漏洞。
Linux 修改 ulimit 與 limits.conf 突破預設 1024 檔案描述符限制
解決 Linux vsftpd 530 Login Incorrect 錯誤的三大方案
Ubuntu 自訂登入畫面背景:用 dconf-editor 修改 lightdm 使用者設定
Linux expect 命令實戰:自動化 SSH 登入、遠端指令執行與互動腳本
Ubuntu 系統配置 IPv4 網路參數完整教學(DHCP、靜態 IP、虛擬 IP、DNS)
Linux 掛載與卸載 USB 裝置完整指令教學:手動掛載、檔案系統辨識、自動化技巧