Aplicando parche para bash fallando

Aplicando parche para bash fallando

El shell bash en mi caja de producción es vulnerable a la vulnerabilidad 'bashbug'.https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/

La versión instalada es

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

No puedo usarlo YUMpara instalar el paquete más reciente porque nuestro servidor no está conectado a Internet, así que estoy intentando instalarlo bashusando el código fuente. Lo descargué bash 4.3e instalé desde el código fuente. Dado que esta versión aún es vulnerable a errores de bash, necesito aplicar el último parche para esta versión.

Para esto, descargué el último parche bashdel siguiente sitio.

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

Estoy aplicando bash43-030 el parche desde el enlace de arriba.

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

El problema al que me enfrento es que la aplicación del parche falla con el siguiente error

[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

Sugiera cómo resolver el problema. Puede que la forma de aplicar el parche sea incorrecta.

Respuesta1

Los parches de Bash sonacumulativo, la fuente de 4.3 es efectivamente 4.3.0, los parches están separados y todos deben aplicarse en orden, cada uno lo llevará a un nivel de parche. En raras ocasiones, se encuentra disponible una versión completa del código fuente en el sitio oficial; la última fue la 3.2.48.

Lo que está observando es que el parche requerido (el sufijo "-030" indica un nivel de parche .30) espera los parches anteriores. (Esto siempre se detectará con los parches de bash, ya que cada parche patchlevel.hque se omita dará como resultado un error de parche). Puede encontrar mis instrucciones para construir desde la fuente aquí:https://unix.stackexchange.com/a/157714/31352

Construir desde el código fuente es sencillo, pero no debe realizarse a la ligera. Una vez que parchee su bash, estará solo con respecto al soporte del proveedor y puede complicar más tareas administrativas (como parches y actualizaciones).

Probablemente estés mejordescargar el RPM de Red Hat, transferirlo al servidor (o si realmente desea compilarlo desde la fuente, el SRPM). bash tiene dependencias mínimas (en particular, termcap), solo debería necesitar un único paquete suponiendo que ninguno de ellos haya sido modificado.

En cualquier caso, probablemente deberías seguir con bash-4.1, hay una serie de cambios que pueden afectar los scripts, consulta la secciónCOMPATarchivo en la distribución fuente para más detalles. Todas las versiones publicadas desde la 2.05b hasta la 4.3 tienen parches para "shellshock" (CVE-2014-6271) y problemas relacionados.

información relacionada