¿El error Shellshock Bash afecta a ZSH?
¿La actualización de Bash es la única solución?
bash
zsh
shellshock
marflar
fuente
fuente
Respuestas:
No, no afecta a ZSH.
Todavía DEBE actualizar bash como la mayor parte de los scripts del sistema están escritos para bash y vulnerables al error shellshock.
Para probar tu ZSH haz esto:
¿Qué hace exactamente este código?
env x='() { :;}; echo vulnerable'
crea una variable de entorno con error conocido usando el comando al final de la variablezsh -c 'echo hello'
lanza el shell ZSH con un simple saludo (y evalúa todas las variables env, incluida x )Si ve salida:
Entonces tu ZSH es vulnerable. El mío (5.0.2) no es:
fuente
bash
es un mal hábito para las utilidades del sistema porque no se garantiza la instalación de bash;/bin/sh
es el shell estándar y se requiere que sea un intérprete de shell POSIX correcto.env x='() { :;}; echo vulnerable' sh -c 'echo hello'
Desde este enlace :
Puede determinar si es vulnerable al problema original en CVE-2014-6271 ejecutando esta prueba:
Si ve la palabra vulnerable en la salida de ese comando, su bash es vulnerable y debería actualizarlo. A continuación se muestra una versión vulnerable de OS X 10.8.5:
El siguiente resultado es un ejemplo de una versión bash no vulnerable.
fuente
env X='() { (a)=>\' bash -c "echo date"
en un bash parcheado ya pesar de arrojar muchos errores, producirá un archivo llamadoecho
que contiene la fecha. No quiero saber por qué.zsh
no se usabash
en su núcleo.bash
se llama explícitamente en tus ejemplos. No importa qué shell esté utilizando para ejecutar estas líneas. Esta vulnerabilidad afecta al shell bash recién iniciado, no al shell desde el que se ejecuta.bash
en los ejemplos por$SHELL
.El binario no se ve afectado.
No afecta
zsh
como el ejecutable del shell, porque su código fuente nunca contuvo el error.Hay muchas similitudes entre
bash
yzsh
, pero se implementaron independientemente entre sí. La misma característica se implementa de dos maneras diferentes y, lo que es más importante en este contexto, generalmente con diferentes errores.Pero el uso interactivo es
Indirectamente, afecta el trabajo interactivo con el
zsh
shell en un terminal casi tanto como trabajar con élbash
.El uso de
bash
es tan común que difícilmente se puede evitar llamarlo.Demasiados usos para evitar
zsh
, pero que en realidad contienenbash
.#!/bin/bash
para especificarbash
como intérprete.muchos de los comandos que asume son binarios, pero son scripts de shell, algunos de los cuales usan
bash
.en muchos lugares donde un shell se ejecuta explícitamente,
bash
se puede usar y posiblemente sea necesario.xargs
comandos complejos ogit
alias que involucran argumentosfuente
No, Shellshock no afecta a zsh directamente.
Sin embargo, muchos entornos que usan zsh como shell predeterminado también tienen instalado bash. Cualquier shell, incluido zsh, se puede utilizar para generar un shell bash comprometido:
Para defenderse de esto, debe parchear, desinstalar o deshabilitar cualquier versión redundante de bash. Puede deshabilitar la instalación de bash del sistema con
chmod
:Sin embargo, es común que los scripts llamen explícitamente a bash. Los scripts que hacen esto, y aquellos que usan funciones de scripting específicas de bash, fallarán si bash no está disponible. Parchear es la mejor solución.
fuente
importing function definition
"? También probé con la inyección de servidor ssh:ssh testuser@localhost '() { :;}; echo "$SHELL"'
donde configuré eltestuser
shell de inicio de sesión/bin/zsh
y hace eco/bin/zsh