Aplicando patch para falha do bash

1

O shell bash na minha caixa de produção é vulnerável à vulnerabilidade do 'bashbug'. link

A versão instalada é

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

Não consigo usar o YUM para instalar o pacote mais recente porque o nosso servidor não está conectado à Internet, portanto estou tentando instalar bash usando o código-fonte. Eu baixei o bash 4.3 e o instalei a partir do código-fonte. Uma vez que esta versão ainda é vulnerável ao bug bash, eu preciso aplicar o patch mais recente para esta versão.

Para isso, baixei o último patch para bash do site a seguir.

link

Estou aplicando bash43-030 patch do link acima.

link

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

Sugira como resolver o problema. Pode ser abordagem de aplicar o patch está errado.

    
por Zama Ques 13.10.2014 / 08:36

1 resposta

2

Os patches de Bash são cumulativos , a fonte do 4.3 é efetivamente 4.3.0, os patches são separados e todos devem ser aplicados em ordem, cada um o levará a um nível de correção. Raramente, um lançamento de fonte completo é disponibilizado a partir do 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, já que cada um corrige patchlevel.h de qualquer omissão resultará em um erro de correção). Você pode encontrar minhas instruções para criar a partir da fonte aqui: link

Construir a partir da fonte é simples, mas não deve ser realizado de ânimo leve. Uma vez que você corrige seu bash, você está sozinho com relação ao suporte do fornecedor e pode complicar outras tarefas administrativas (como patches e atualizações).

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

Em qualquer caso, você provavelmente deve ficar com o bash-4.1, há uma série de mudanças que podem afetar os scripts, veja o COMPAT arquivo na distribuição de origem para obter detalhes. Todas as versões lançadas de 2.05b a 4.3 têm patches para "shellshock" (CVE-2014-6271) e questões relacionadas.

    
por 13.10.2014 / 11:26