업데이트 후 Shellshock에 대한 Bash 경고 메시지가 더 이상 표시되지 않습니다.

업데이트 후 Shellshock에 대한 Bash 경고 메시지가 더 이상 표시되지 않습니다.

방금 업데이트 팝업에서 Ubuntu를 업데이트했습니다. 저는 Shellshock을 알고 있어서 빠르게 설치를 진행했습니다. 이제 달리려고 하면

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

(이전에 얻었던) 출력을 얻지 못했습니다.

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello

에 설명된 대로CVE-2014-6271 bash 취약점(Shellshock)은 무엇이며 어떻게 해결합니까?

오히려 이제는 '안녕하세요'라는 말만 듣게 됩니다. 내가 설치한 업데이트가 이러한 오류 메시지를 숨긴다고 가정해도 안전합니까? 소프트웨어 센터를 검토한 후 설치한 업데이트가 다음과 같습니다.

unity-settings-daemon (14.04.0+14.04.20140414-0ubuntu1, 14.04.0+14.04.20140606-0ubuntu1
aptdaemon-data (1.1.1-1ubuntu5, 1.1.1-1ubuntu5.1)
python-aptdaemon.gtk3widgets (1.1.1-1ubuntu5, 1.1.1-1ubuntu5.1)
bash (4.3-7ubuntu1.3, 4.3-7ubuntu1.4)
python-aptdaemon (1.1.1-1ubuntu5, 1.1.1-1ubuntu5.1)

보다 구체적으로 4.3-7ubuntu1.4는 함수 정의 시도 오류 메시지를 숨깁니까? 의심을 해서 죄송합니다만, 구글링을 몇 번 해본 결과 아직 비슷한 문제를 발견하지 못했습니다. 어떤 명확성이라도 대단히 감사하겠습니다. 감사해요!

답변1

에 따르면이 Fedora 매거진 게시물:

env x='() { :;}; echo OOPS' bash -c :

취약한 시스템에서는 "OOPS"가 인쇄되지만 bash가 패치된 경우 자동으로 종료됩니다.

이것은 다음에서 볼 수 있는 동작입니다.

  • 데비안 squeeze( bash패키지 4.1-3+deb6u2)
  • CentOS 6.5( bash패키지 0:4.1.2-15.el6_5.2)
  • 아치 리눅스( bash패키지 4.3.026-1)

나는 이것이 수정 사항이 작동하도록 의도된 방식이라고 추측하지만 어떤 이유로 Ubuntu의 초기 bash패치는 추가 코드를 자동으로 무시하는 대신 오류를 생성했습니다.


mattdm의 코멘트:

초기 패치는 실제로예정된환경 변수에서 잘못된 함수 정의가 발견되면 오류를 생성합니다. 업데이트된 패치는 특별히 접두사가 붙은 변수만 살펴보므로 실제 위험이 거의 모두 제거됩니다. 시도해 보세요 env 'BASH_FUNC_x()'='() { :;}; echo OOPS' bash -c :. 오류가 표시됩니다.

나는 이것을 확인했습니다 :

$ env 'BASH_FUNC_x()'='() { :;}; echo OOPS' bash -c :
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x`
$ bash --version | head -1
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
$ apt-cache policy bash | grep Installed
  Installed: 4.3-7ubuntu1.4

관련 정보