Nach dem Bekanntwerden des schwerwiegenden Bugs in der LINUX-Shell "Bash"

werden hoffentlich weltweit Millionen von Linux-Installationan aktualisiert, in der Regel über die normalem Mechanismen des Paket-Managements mit den bereitgestellten Sicherheits-Updates des Distributors. Aber was tun, wenn der keine Updates mehr bereit stellt?

Bash
Bash

Auch dann kann man die Bash noch aktualisieren, und zwar so:

#!/bin/sh

echo Ubuntu-Version:
cat /etc/issue.net
echo ------------------------

echo Bash-Version:
bash --version
echo ------------------------

echo Ist APT auf Old-Releases umgestellt?
grep old-releases /etc/apt/sources.list
echo ------------------------

echo Ist die jetzige Bash verwundbar?
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
echo ------------------------

read -p "Weiter? (Abbrechen mit Ctrl-C)" weiter

sudo apt-get update
sudo apt-get install build-essential

wget --no-cache -O - \
     http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz | tar -xvz

cd bash-master
./configure --prefix=/
make
sudo make install
cd ..

bash --version


Download hier.

Zur Eräuterung:

Die Datei /etc/apt/sources.list sollte bei Alt-Installationen immer auf Einträge umgestellt werden, die alle "old-releases" lauten.  Das muss vorger geschehen sein und wird hier nur kurz per grep überprüft.
Dann wird das Paket build-essential installiert, falls es nicht schon installiert ist. Es beinhaltet den Compiler und notwendige Werkzeuge (make etc).

Der Test, ob die vorhandene Bash verwundbar ist oder nicht, sieht so aus:

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

Wenn er "vulnerable" ausspuckt, ist die Bash verwundbar, wenn nur Fehler und Warnungen kommen, ist die Bash OK.

 

Das ganze Update sollte auch unter anderen Debain-basierten Distibutionen funktionieren, nicht nur unter Ubuntu.

Wenn ein funktionierender Compiler vorhanden ist, dürfte es sogar unter jeder anderen LINUX-Distribution funktionieren.