🇰🇷 한글 설명
GNU Bash 4.3 이하에서 환경 변수의 함수 정의를 부정확하게 파싱하여 원격 공격자가 임의 코드를 실행할 수 있는 취약점입니다. OpenSSH, Apache HTTP Server, DHCP 클라이언트 등 권한 경계를 넘어 Bash를 실행하는 모든 상황에서 악용 가능합니다.
💡 쉬운 설명
Bash가 악의적인 명령어를 숨긴 환경 변수를 정상 함수로 착각하고 실행하는 문제입니다. 웹서버나 원격 접속을 통해 공격자가 서버에서 원하는 명령어를 강제로 실행시킬 수 있습니다.
🇺🇸 원문 (English)
GNU Bash through 4.3 bash43-026 does not properly parse function definitions in the values of environment variables, which allows remote attackers to execute arbitrary commands via a crafted environment, as demonstrated by vectors involving the ForceCommand feature in OpenSSH sshd, the mod_cgi and mod_cgid modules in the Apache HTTP Server, scripts executed by unspecified DHCP clients, and other situations in which setting the environment occurs across a privilege boundary from Bash execution. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-6271, CVE-2014-7169, and CVE-2014-6277.
📍 영향받는 시스템
GNU Bash ≤ 4.3 bash43-026 (모든 OS), OpenSSH sshd, Apache mod_cgi/mod_cgid, DHCP 클라이언트
⚔️ 공격 벡터
환경 변수를 통해 `() { :; }; [악의적 명령어]` 형식의 페이로드 전송
🛡️ 대응 방법
Bash를 4.3.27 이상으로 업그레이드
🔧 검증 코드
VULNERABLE 출력 시 패치되지 않은 버전, PATCHED 출력 시 안전함
bash -c 'env x='() { :;}; echo vulnerable' bash -c :' 2>&1 | grep -q vulnerable && echo 'VULNERABLE' || echo 'PATCHED'