Aplicando patch para falha no bash

Aplicando patch para falha no bash

O shell bash na minha caixa de produção é vulnerável à vulnerabilidade 'bashbug'.https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/

A versão instalada é

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

Não consigo YUMinstalar o pacote mais recente porque nosso servidor não está conectado à Internet, então estou tentando instalar bashusando o código-fonte. Eu baixei bash 4.3e instalei a partir do código-fonte. Como esta versão ainda é vulnerável ao bug do bash, preciso aplicar o patch mais recente para esta versão.

Para isso baixei o patch mais recente bashdo site a seguir.

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

Estou aplicando bash43-030 o patch do link acima.

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

O problema que estou enfrentando é que a aplicação do patch está falhando com o seguinte erro

[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

Por favor, sugira como resolver o problema. Pode ser que a abordagem de aplicação do patch esteja errada.

Responder1

Os patches Bash sãocumulativo, a fonte do 4.3 é efetivamente 4.3.0, os patches são separados e todos eles devem ser aplicados em ordem, cada um aumentará um nível de patch. Raramente, uma versão completa do código-fonte é disponibilizada no site oficial, o último foi 3.2.48.

O que você está observando é que o patch necessário (o sufixo "-030" indica um nível de patch .30) está esperando os patches anteriores. (Isso sempre será detectado com patches bash, pois cada um deles corrige patchlevel.hqualquer omissão resultará em um erro de patch). Você pode encontrar minhas instruções para construir a partir da fonte aqui:https://unix.stackexchange.com/a/157714/31352

Construir a partir da fonte é simples, mas não deve ser realizado levianamente. Depois de corrigir seu bash, você estará sozinho em relação ao suporte do fornecedor e poderá complicar outras tarefas administrativas (como patches e atualizações).

Você provavelmente está melhorbaixando o Red Hat RPM, transferindo-o para o servidor (ou se você realmente quiser construí-lo a partir do código-fonte, o SRPM). bash tem dependências mínimas (principalmente termcap), você deve precisar apenas de um único pacote, assumindo que nenhum deles foi modificado.

De qualquer forma, você provavelmente deveria ficar com o bash-4.1, há uma série de mudanças que podem impactar os scripts, veja oCOMPATarquivo na distribuição fonte para obter detalhes. Todas as versões lançadas de 2.05b a 4.3 possuem patches para "shellshock" (CVE-2014-6271) e problemas relacionados.

informação relacionada