CVE-2014-6271 쉘쇼크 Bash 취약점 조치

Jmnote (토론 | 기여)님의 2014년 9월 30일 (화) 02:05 판 (→‎확인 1 (취약))

1 개요

shellshock
[CVE-2014-6271] GNU Bash 원격코드 인젝션 취약점 확인 및 조치
2014년 9월 Bourne Again Shell(Bash) 취약점 보안 업데이트
쉘쇼크, 쉘쇼크 조치방법

2 확인방법

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
rm -f echo; env X='() { (a)=>\' sh -c "echo date"; cat echo
(for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash ||
echo "CVE-2014-7187 vulnerable, word_lineno"

3 확인 1 (취약)

[root@jmnote ~]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
echo vulnerable이 수행되었으므로 취약함
[root@jmnote ~]# rm -f echo; env X='() { (a)=>\' sh -c "echo date"; cat echo
sh: X: line 1: syntax error near unexpected token `='
sh: X: line 1: `'
sh: error importing function definition for `X'
→ date 명령어가 실행되고 /tmp/echo 파일이 생성되었으므로 취약함
[root@jmnote ~]# (for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash ||
> echo "CVE-2014-7187 vulnerable, word_lineno"
bash: line 129: syntax error near `x129'
bash: line 129: `for x129 in ; do :'
CVE-2014-7187 vulnerable, word_lineno
→ echo ... 명령어가 수행되었으므로 취약함

4 Bash 버전 확인

[root@jmnote tmp]# rpm -qa | grep bash
bash-3.2-32.el5

5 Bash 업데이트

[root@jmnote ~]# yum update bash
... (생략)
===========================================================================================
 Package          Arch               Version                     Repository           Size
===========================================================================================
Updating:
 bash             x86_64             3.2-33.el5_10.4             updates             1.8 M

Transaction Summary
===========================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total download size: 1.8 M
Is this ok [y/N]: y
... (생략)
Updated:
  bash.x86_64 0:3.2-33.el5_10.4                                                            

Complete!

6 확인 (안전)

[root@jmnote ~]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
[root@jmnote ~]# env X='() { (a)=>\' sh -c "echo date"; cat echo
date
cat: echo: No such file or directory
[root@jmnote ~]# (for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash ||
> echo "CVE-2014-7187 vulnerable, word_lineno"

7 같이 보기

8 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}