Nach dem Heartbleed-Disaster ist seit letzter Woche eine wohl noch schlimmere Lücke, dieses Mal in der Bash-Shell, bekannt geworden. Ein entsprechender Artikel befindet sich auch auf Heise. Der Bug kursiert unter dem Namen „Shellshock“ und ermöglicht Angreifern von Webservern unter Umständen seit 25 Jahren (!) Schadcode durch Umgebungsvariablen einzuschleusen, welche von der Bash ausgeführt werden.
Bug-Test
Den Test-Code von Heise kann man einfach auf der Kommandozeile ausführen:
1 |
env x='() { :;}; echo vulnerable' bash -c "echo this is a test" |
Wie zu sehen ist liefert dieser „vulnerable“ zurück. Somit ist der Bug ausnutzbar.
Update
Da ich mit dem kompletten Upgrade eines openSUSE durch den Befehl „zypper up“ bisher keine guten Erfahrungen gemacht habe, das System ließ sich danach schlicht nicht mehr starten, habe ich nur die Bash geupdatet.
Dies geht wie folgt:
1 2 |
zypper in bash reboot |
Den Reboot habe ich durchgeführt, damit auch wirklich die aktuelle Version geladen wird. Leider passierte nachdem Reboot nicht viel. Auch nach mehrmaligen Booten blieb Suse immer bei „Loading initial ramdisk“ hängen. Auch andere Boot-Einträge in Grub auszuwählen änderte nichts.
Schlussendlich lief es wieder nachdem ich virtuelle Maschine hart ausgeschaltet habe und einmal ins Rescue System gebootet habe. Dort habe ich nichts weiter gemacht, außer mit „reboot“ nochmals neu zu starten.
Erneuter Test
Bei einem erneuten Test mit dem Code von Heise dürfte „vulnerable“ nun nicht mehr erscheinen: