Bash에 대한 패치 적용 실패

Bash에 대한 패치 적용 실패

내 프로덕션 환경의 bash 쉘은 "bashbug" 취약점에 취약합니다.https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/

설치된 버전은

`$ bash --version
 GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)`

YUM우리 서버가 인터넷에 연결되어 있지 않아서 최신 패키지를 설치할 수 없어서 bash소스에서 설치를 시도했습니다. 소스에서 다운로드 해서 bash 4.3설치했습니다. 이 버전은 여전히 ​​bash 버그에 취약하므로 이 버전에 대한 최신 패치를 적용해야 합니다.

이를 위해 bash다음 사이트에서 최신 패치를 다운로드했습니다.

http://ftp.gnu.org/gnu/bash/bash-4.3-patches/

bash43-030 위 링크에서 패치를 적용하고 있습니다 .

http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-030

내가 직면한 문제는 다음 오류로 인해 패치 적용이 실패한다는 것입니다.

[bash-4.3]$ patch -p0 < bash-patch patching file builtins/evalstring.c Hunk #1 FAILED at 309. Hunk #2 FAILED at 379. 2 out of 2 hunks FAILED -- saving rejects to file builtins/evalstring.c.rej patching file parse.y Hunk #1 succeeded at 2574 (offset 35 lines). Hunk #2 FAILED at 4038. 1 out of 2 hunks FAILED -- saving rejects to file parse.y.rej patching file shell.h Hunk #1 succeeded at 181 with fuzz 2. patching file y.tab.c Hunk #1 FAILED at 169. Hunk #2 FAILED at 498. Hunk #3 FAILED at 2099. Hunk #4 FAILED at 2113. ... ... Hunk #98 FAILED at 6350. 97 out of 98 hunks FAILED -- saving rejects to file y.tab.c.rej patching file patchlevel.h Hunk #1 FAILED at 26. 1 out of 1 hunk FAILED -- saving rejects to file patchlevel.h.rej

이 문제를 해결하는 방법을 제안해 주세요. 어쩌면 패치가 잘못된 방식으로 적용되었을 수도 있습니다.

답변1

배쉬 패치는총계, 4.3의 소스 코드는 실제로 4.3.0이고 패치는 별개이며 모든 패치는 순서대로 적용되어야 하며 각 패치는 패치 수준을 하나씩 올립니다. 공식 웹사이트에서는 완전한 소스 코드 버전을 거의 제공하지 않으며, 마지막 버전은 3.2.48입니다.

당신이 관찰한 것은 필수 패치(.30 패치 수준을 나타내는 "-030" 접미사)에는 이전 패치가 필요하다는 것입니다. ( patchlevel.h각 패치에서 누락이 발생하면 패치 오류가 발생하므로 이는 항상 bash 패치로 감지됩니다 .) 소스에서 빌드하는 방법에 대한 지침은 여기에서 찾을 수 있습니다.https://unix.stackexchange.com/a/157714/31352

소스에서 빌드하는 것은 간단하지만 가볍게 수행할 수는 없습니다. Bash를 패치하고 나면 공급업체 지원을 스스로 받아야 하며 이로 인해 패치 및 업그레이드와 같은 추가 관리 작업이 복잡해질 수 있습니다.

너는 더 나을지도 몰라Red Hat RPM을 다운로드하여 서버로 전송합니다(또는 실제로 소스에서 빌드하려는 경우 대신 SRPM). bash에는 최소한의 종속성(특히 termcap)이 있으며, 이들 중 어느 것도 수정되지 않는다고 가정하면 하나의 패키지만 필요합니다.

어쨌든 bash-4.1을 고수해야 할 것입니다. 스크립트에 영향을 미칠 수 있는 많은 변경 사항이 있습니다.COMPAT자세한 내용은 소스 배포판의 설명서를 참조하세요. 2.05b부터 4.3까지의 모든 릴리스에는 "shellshock"(CVE-2014-6271) 및 관련 문제에 대한 패치가 있습니다.

관련 정보