Shellshock (softwarebug)

Shellshock ook bekend als Bashdoor of CVE-2014-6271[1], is een familie van softwarebugs in de Unix Bash shell. De bug was bekendgemaakt op 24 september 2014. Gezien de omvang wordt een vergelijking gemaakt met de bug Heartbleed.[1][2]

Het logo van Shellshock, vergelijkbaar met het Heartbleed-logo

Achtergrond bewerken

De kwetsbaarheid van Shellshock is dat, in getroffen versies van Bash, code kan worden geïnjecteerd. Dit gebeurt door de "function export"-functie, die scripts in een actieve instantie van Bash kan delen met ondergeschikte instanties. Deze functie wordt uitgevoerd door het coderen van de scripts binnen een tabel die gedeeld wordt tussen de verschillende instanties, oftewel de omgevingsvariabelenlijst.

Gerapporteerde kwetsbaarheden bewerken

De onderhouder van Bash was op 12 september 2014 gewaarschuwd over de bug, hierna werd een patch uitgebracht. Enkele bedrijven waren al gewaarschuwd voordat de bug openbaar gemaakt werd op 24 september 2014. Na de patch waren er enkele andere kwetsbaarheden ontdekt.[1]

CVE-2014-6271 bewerken

Deze versie van de bug bestond vanaf versie 1.13 tot versie 4.3 van Bash. De bug kan getest worden met het volgende commando:[3]

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

In systemen die kwetsbaar zijn zal het bovenstaande commando het woord "vulnerable" tonen.

CVE-2014-6277 bewerken

Ontdekt door Michal Zalewski.[4][5] Deze kwetsbaarheid heeft met de interpretatie van functieomschrijvingen in omgevingsvariabelen door Bash te maken en kan zorgen voor een segmentatiefout.

CVE-2014-6278 bewerken

Ook ontdekt door Michal Zalewski. Deze kwetsbaarheid heeft ook te maken met de interpretatie van functieomschrijvingen in omgevingsvariabelen door Bash.

CVE-2014-7169 bewerken

Op dezelfde dag dat de oorspronkelijke kwetsbaarheid gepubliceerd was, ontdekte Tavis Ormandy een soortgelijke bug die getest kan worden met het volgende commando:[4]

env X='() { (a)=>\' bash -c "echo date"; cat echo

Op een kwetsbaar systeem zal dit het commando "date" uitvoeren en de datum en tijd laten zien.

CVE-2014-7186 bewerken

Deze bug, ontdekt door Florian Weimer en Todd Sabin[6] wordt veroorzaakt door een bufferoverloop in de Bash parser code. Een voorbeeld van de kwetsbaarheid gaat als volgt:

bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' ||
echo "CVE-2014-7186 vulnerable, redir_stack"

Dit voorbeeld maakt gebruik van meerdere "<<EOF" verklaringen. Een kwetsbaar systeem zal de zin "CVE-2014-7186 vulnerable, redir_stack" echoën.

CVE-2014-7187 bewerken

Ook gevonden door Florian Weimer, deze off-by-one error in de Bash parser code staat out-of-bounds geheugen toegang toe.