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 YUM
para instalar el paquete más reciente porque nuestro servidor no está conectado a Internet, así que estoy intentando instalarlo bash
usando el código fuente. Lo descargué bash 4.3
e 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 bash
del 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.h
que 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ónCOMPAT
archivo 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.