Apakah bug Bash Shellshock memengaruhi ZSH?
Apakah memutakhirkan Bash adalah satu-satunya solusi?
bash
zsh
shellshock
marflar
sumber
sumber
Jawaban:
Tidak, itu tidak memengaruhi ZSH.
Anda masih HARUS memperbarui bash karena sebagian besar skrip sistem ditulis untuk bash dan rentan terhadap bug shellshock.
Untuk menguji ZSH Anda, lakukan ini:
Apa sebenarnya yang dilakukan kode ini?
env x='() { :;}; echo vulnerable'
membuat variabel lingkungan dengan bug yang diketahui menggunakan perintah di akhir variabelzsh -c 'echo hello'
meluncurkan shell ZSH dengan hello sederhana (dan mengevaluasi semua variabel env termasuk x )Jika Anda melihat output:
Maka ZSH Anda rentan. Milik saya (5.0.2) tidak:
sumber
bash
adalah kebiasaan buruk untuk utilitas sistem karena bash tidak dijamin diinstal;/bin/sh
adalah shell standar dan diperlukan untuk menjadi penerjemah shell POSIX yang benar.env x='() { :;}; echo vulnerable' sh -c 'echo hello'
Dari tautan ini :
Anda dapat menentukan apakah Anda rentan terhadap masalah asli di CVE-2014-6271 dengan menjalankan tes ini:
Jika Anda melihat kata rentan dalam output perintah itu, bash Anda rentan dan Anda harus memperbarui. Di bawah ini adalah versi yang rentan dari OS X 10.8.5:
Output berikut adalah contoh dari versi bash yang tidak rentan.
sumber
env X='() { (a)=>\' bash -c "echo date"
akan, pada bash yang ditambal dan meskipun melemparkan banyak kesalahan, menghasilkan file bernamaecho
yang berisi tanggal. Saya tidak ingin tahu mengapa.zsh
tidak tidak menggunakanbash
pada intinya.bash
secara eksplisit disebut dalam contoh Anda. Tidak masalah shell mana yang Anda gunakan untuk menjalankan baris ini. Kerentanan ini memengaruhi bash shell yang baru mulai, bukan shell yang dijalankannya.bash
dalam contoh dengan$SHELL
.Biner tidak terpengaruh
Itu tidak mempengaruhi
zsh
sebagai shell dieksekusi, karena kode sumbernya tidak pernah mengandung kesalahan.Ada banyak kesamaan antara
bash
danzsh
, tetapi mereka tidak diterapkan secara independen satu sama lain. Fitur yang sama diimplementasikan dalam dua cara yang berbeda, dan - lebih penting dalam konteks ini - biasanya dengan kesalahan yang berbeda.Tetapi penggunaan interaktif
Secara tidak langsung itu mempengaruhi bekerja secara interaktif dengan
zsh
shell di terminal hampir sebanyak bekerja denganbash
.Penggunaannya
bash
sangat umum sehingga orang hampir tidak bisa menghindarinya.Terlalu banyak kegunaan untuk dihindari
zsh
, tetapi sebenarnya mengandungbash
.#!/bin/bash
untuk menentukanbash
sebagai penerjemah.banyak perintah yang Anda anggap binari, tetapi skrip shell, beberapa di antaranya menggunakan
bash
.di banyak tempat di mana shell dieksekusi secara eksplisit,
bash
dapat digunakan, dan mungkin diperlukan.xargs
perintah yang rumit , ataugit
alias yang melibatkan argumensumber
Tidak, Shellshock tidak memengaruhi zsh secara langsung.
Namun banyak lingkungan yang menggunakan zsh sebagai shell default juga telah menginstal bash. Semua shell, termasuk zsh, dapat digunakan untuk menelurkan shell bash yang dikompromikan:
Untuk mempertahankannya, Anda harus menambal, mencopot atau menonaktifkan versi bash yang berlebihan. Anda dapat menonaktifkan instalasi sistem bash dengan
chmod
:Namun, biasanya skrip memanggil bash secara eksplisit. Skrip yang melakukan ini, dan yang menggunakan fitur skrip bash-spesifik, akan gagal jika bash tidak tersedia. Menambal adalah solusi terbaik.
sumber
importing function definition
"? Saya juga diuji dengan injeksi ssh-server: dissh testuser@localhost '() { :;}; echo "$SHELL"'
mana saya mengaturtestuser
shell login/bin/zsh
, dan itu bergema/bin/zsh