CVE-2014-6271 je kritická oprava s vysokým dopadem. Pokud používáte systém Linux, měli byste tuto chybu zabezpečení opravit.
Tato chyba zabezpečení CVE-2014-6271 (a CVE-2014-7169) se také nazývá Shellshock.
Byla nalezena chyba ve způsobu, jakým Bash vyhodnotil určité speciálně vytvořené proměnné prostředí. Útočník by mohl tuto chybu použít k přepsání nebo obejití omezení prostředí při provádění příkazů shellu. Některé služby a aplikace umožňují vzdáleným neověřeným útočníkům poskytovat proměnné prostředí, což jim umožňuje tento problém zneužít.
Pomocí bash shellu tato chyba zabezpečení umožňuje útočníkovi spouštět náhodné příkazy shellu ve vašem prostředí. Myšlenka za tím je, že útočník může obejít omezení proměnných prostředí, což mu umožňuje provádět příkazy shellu.
Upozorňujeme, že některé služby (nebo aplikace), které běží na linuxových serverech, mohou umožnit neověřeným útočníkům zadat některé proměnné prostředí, které jim zase umožní zneužít tuto chybu zabezpečení v síti bez jakékoli autentizace.
Jediné, co musíte udělat, abyste to napravili, je upgradovat bash na nejnovější verzi. Například na RedHat nebo CentOS tento problém vyřešíte takto:
yum update bash
Je váš systém zranitelný vůči CVE-2014-6271?
RedHat poskytl následující skript pro testování, zda je váš systém zranitelný nebo ne.
Pokud ve výstupu uvidíte slovo „zranitelný“, pak je váš systém zranitelný.
env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
Vezměte prosím na vědomí, že se ve výstupu může zobrazit také nějaká chybová zpráva spolu se slovem „zranitelný“. Například následující je výstup na systému RedHat 5 a RedHat 6 (a CentOS 5 a 6), který je zranitelný.
# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test" vulnerable bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)' bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable' bash: error importing function definition for `BASH_FUNC_x' test
Verze Bash před opravou
Než problém vyřešíte, zkontrolujte aktuální verzi bash. Na RedHat 5 (a CentOS 5) jsem měl před opravou následující bash verzi:
# rpm -qa | grep bash bash-3.2-24.el5
Na RedHat 6 (a CentOS 6) jsem měl před opravou následující bash verzi:
# rpm -qa | grep bash bash-4.1.2-3.el6.x86_64
Opravit CVE-2014-6271
Nyní aktualizujte bash pomocí yum (nebo jiného nástroje pro správu balíčků pro vaši příslušnou distribuci)
yum update bash
Na RedHat 5 (a CentOS 5) je následující verze bash po aktualizaci, která opravila zranitelnost.
# rpm -qa | grep bash bash-3.2-33.el5_11.4
Na RedHat 6 (a CentOS 6) je následující verze bash po aktualizaci, která opravila zranitelnost.
# rpm -qa | grep bash bash-4.1.2-15.el6_5.2.x86_64
Po opravě otestujte chybu zabezpečení CVE-2014-6271
Po upgradu bash na nejnovější verzi, když provedete test, neuvidíte slovo „zranitelný“ v následujícím výstupu příkazu. Upozorňujeme, že níže uvedené varování a chybová zpráva jsou v pořádku.
# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test" bash: warning: x: ignoring function definition attempt bash: error importing function definition for `BASH_FUNC_x' test
A co CVE-2014-7169?
Po vydání původní opravy redhat zjistil, že oprava CVE-2014-6271 byla neúplná a bash stále umožňoval několik znaků, které lze za určitých zvláštních okolností vložit do proměnné prostředí.
Když jste provedli yum aktualizaci bash z předchozího kroku, automaticky získá nejnovější verzi bash, která také obsahuje opravu pro CVE-2014-7169. Takže pro tuto opravu opravdu nemusíte dělat nic konkrétního.
Stále však můžete provést test, abyste se ujistili, že váš systém není zranitelný vůči tomuto problému, a to provedením následujícího v systému:
cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
V systému, který je zranitelný vůči CVE-2014-7169, si všimnete, že následující vytvořil soubor /tmp/echo a zobrazí obsah souboru.
Pokud uvidíte následující výstup, měli byste aktualizovat svůj bash na nejnovější verzi pomocí „yum update bash“ (nebo použijte vhodný nástroj pro správu balíčků pro vaši distribuci)
# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo bash: x: line 1: syntax error near unexpected token `=' bash: x: line 1: `' bash: error importing function definition for `x' Fri Sep 26 16:15:09 PDT 2014
Pokud váš systém není zranitelný vůči CVE-2014-7169, uvidíte následující výstup, který nevytvoří soubor /tmp/echo.
# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo date cat: /tmp/echo: No such file or directory
Další informace
- Podrobnosti o CVE-2014-6271, CVE-2014-7169 z webu RedHat
- Zpráva RedHat (CentOS, Fedora) Bugzilla pro CVE-2014-6271
- Zpráva RedHat (CentOS, Fedora) Bugzilla pro CVE-2014-7169
- Oracle Security Alert for CVE-2014-7169 – pro Solaris nebo Oracle Enterprise Linux
- Ubuntu CVE-2014-7169
- Debian CVE-2014-7169