bash securite bug patch compilation fix solution

Patcher bash sur une distribution plus supportee comme fedora 11

Pour ceux qui ont des serveurs roulant sur des vieilles fedora, il est nécessaire de mettre a jour la version de bash afin de corriger le bug de sécurité découvert récemment :
http://arstechnica.com/security/2014/09/bug-in-bash-shell-creates-big-security-hole-on-anything-with-nix-in-it/
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271
https://www.us-cert.gov/ncas/alerts/TA14-268A

Ici sur une fedora 11 qui n’est plus supportée, on va downloader la derniere version de bash et patcher le code, afin de fixer le probleme.

Voici les etapes :

On va dans le dossier ou on stocke generalement le source de nos programmes :
[bash]cd /usr/local/src[/bash]

Puis on va downloader la derniere version de bash
[bash]wget http://ftp.gnu.org/pub/gnu/bash/bash-4.3.tar.gz[/bash]

On decompresse le dossier :
[bash]tar xvzf bash-4.3.tar.gz[/bash]

On va dans le dossier extrait :
[bash]cd bash-4.3[/bash]

On download le patch qui limite le probleme de securite :
[bash]wget http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-025[/bash]

On patch le code source :
[bash]patch -p0 < bash43-025[/bash]
(le patch est ok malgre l’erreur relative au patch de la revision – cette erreur apparait car nous n’avons pas applique tous les 24 patches precedents – vous pouvez downloader les patches un par un depuis le serveur de sources : http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/ et tous les appliquer un par un)

On va rouler le configure :
[bash]./configure[/bash]

On compile
[bash]make[/bash]

Si tout est ok, on install :
[bash]make install[/bash]

Comme les version compilee vont s’installer par defaut dans /usr/local/bin alors que les binaires de la distrib vont par defaut dans /bin ou /usr/bin on va devoir renommer l’ancien binaire, et creer un lien vers le nouveau :
[bash]mv /bin/bash /bin/bash-distorig
ln -s /usr/local/bin/bash /bin/[/bash]

et voila, il n’a plus qu’a tester l’exploit comme suit pour s’assurer qu’on a regle le probleme :
[bash]env x='() { :;}; echo vulnerable’ bash -c "echo this is a test"[/bash]

Loading

Tags:

samedi, septembre 27th, 2014 Bash, Paranoïa, Technologie Aucun commentaire