J'ai dû corriger un vieux serveur CentOS 4.9, j'ai donc récupéré le dernier RPM source sur le FTP de Red Hat et ajouté le correctif amont sur le FTP de GNU. Les étapes sont les suivantes :
Tout d'abord, suivez la procédure de "Setup" à partir de http://bradthemad.org/tech/notes/patching_rpms.php :
echo "%_topdir /home/$(whoami)/src/rpm" > ~/.rpmmacros
mkdir -p ~/src/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS
mkdir -p ~/src/rpm/RPMS/{i386,i486,i586,i686,noarch,athlon}
Exécutez ensuite les commandes suivantes à partir de votre %_topdir :
cd ~/src/rpm
wget http://ftp.redhat.com/redhat/linux/updates/enterprise/4ES/en/os/SRPMS/bash-3.0-27.el4.src.rpm
rpm -ivh bash-3.0-27.el4.src.rpm
cd SOURCES
wget http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-017
cd ..
Corrigez SPECS/bash.spec avec cette différence :
4c4
< Release: 27%{?dist}
---
> Release: 27.2%{?dist}
28a29
> Patch17: bash30-017
110c111,112
< #%patch16 -p0 -b .016
---
> %patch16 -p0 -b .016
> %patch17 -p0 -b .017
Puis terminez avec ces commandes :
rpmbuild -ba SPECS/bash.spec
sudo rpm -Uvh RPMS/i386/bash-3.0-27.2.i386.rpm
Editar: Les derniers commentaires dans le Bugzilla de Red Hat indiquent que le patch est incomplet. Le nouvel ID est CVE-2014-7169.
Editar: Il y a deux correctifs supplémentaires provenant de gnu.org, donc téléchargez-les également dans le même répertoire SOURCES :
wget http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-018
wget http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-019
Puis modifiez également le fichier SPECS/bash.spec comme suit (la numérotation "Release" est facultative) :
4c4
< Release: 27%{?dist}
---
> Release: 27.2.019%{?dist}
28a29,31
> Patch17: bash30-017
> Patch18: bash30-018
> Patch19: bash30-019
110c113,116
< #%patch16 -p0 -b .016
---
> %patch16 -p0 -b .016
> %patch17 -p0 -b .017
> %patch18 -p0 -b .018
> %patch19 -p0 -b .019