O bug do Shellshock Bash afeta o ZSH?
A atualização do Bash é a única solução?
bash
zsh
shellshock
marflar
fonte
fonte
Respostas:
Não, isso não afeta o ZSH.
Você ainda DEVE atualizar o bash, pois a maioria dos scripts do sistema são escritos para o bash e vulneráveis ao bug do shellshock.
Para testar seu ZSH, faça o seguinte:
O que exatamente esse código faz?
env x='() { :;}; echo vulnerable'
cria uma variável de ambiente com erro conhecido usando o comando no final da variávelzsh -c 'echo hello'
lança shell ZSH com hello simples (e avalia todas as variáveis env incluindo x )Se você vir a saída:
Então seu ZSH está vulnerável. O meu (5.0.2) não é:
fonte
bash
é um mau hábito para os utilitários de sistema, porque não é garantido que o bash esteja instalado;/bin/sh
é o shell padrão e é necessário que seja um interpretador de shell POSIX correto.env x='() { :;}; echo vulnerable' sh -c 'echo hello'
A partir deste link :
Você pode determinar se você está vulnerável ao problema original no CVE-2014-6271 executando este teste:
Se você vir a palavra vulnerável na saída desse comando, seu bash está vulnerável e você deve atualizar. Abaixo está uma versão vulnerável do OS X 10.8.5:
A saída a seguir é um exemplo de uma versão do bash não vulnerável.
fonte
env X='() { (a)=>\' bash -c "echo date"
em uma festança corrigida e, apesar de gerar muitos erros, produzirá um arquivo chamadoecho
que contém a data. Eu não quero saber o porquê.zsh
que não usarbash
em seu núcleo.bash
é explicitamente chamado em seus exemplos. Não importa qual shell você está usando para executar essas linhas. Essa vulnerabilidade afeta o shell bash recém-iniciado, não o shell do qual é executado.bash
nos exemplos por$SHELL
.O binário não é afetado
Não afeta
zsh
como executável do shell, porque seu código-fonte nunca continha o erro.Existem muitas semelhanças entre
bash
ezsh
, mas elas não foram implementadas independentemente uma da outra. O mesmo recurso é implementado de duas maneiras diferentes e - mais importante neste contexto - geralmente com erros diferentes.Mas o uso interativo é
Indiretamente, ele afeta o trabalho interativo com o
zsh
shell em um terminal quase tanto quanto o trabalho com elebash
.O uso de
bash
é tão comum que dificilmente se pode evitar chamá-lo.Muitos usos para evitar
zsh
, mas que realmente contémbash
.#!/bin/bash
para especificarbash
como intérprete.muitos comandos que você assume serem binários, mas são scripts de shell, alguns deles usando
bash
.em muitos lugares onde um shell é executado explicitamente,
bash
pode ser usado e possivelmente necessário.xargs
comandos complexos ougit
aliases envolvendo argumentosfonte
Não, o Shellshock não afeta o zsh diretamente.
No entanto, muitos ambientes que usam o zsh como shell padrão também possuem o bash instalado. Qualquer shell, incluindo zsh, pode ser usado para gerar um shell bash comprometido:
Para se defender, você deve corrigir, desinstalar ou desativar qualquer versão redundante do bash. Você pode desativar a instalação do sistema bash com
chmod
:No entanto, é comum que os scripts chamem explicitamente bash. Os scripts que fazem isso e os que usam recursos de script específicos do bash falharão se o bash não estiver disponível. Patching é a melhor solução.
fonte
importing function definition
"? Eu também testado com injeção ssh-server:ssh testuser@localhost '() { :;}; echo "$SHELL"'
onde eu definir otestuser
's shell de login para/bin/zsh
, e ecos/bin/zsh