Shellshock (softwarebug)

Uit Wikipedia, de vrije encyclopedie
Het logo van Shellshock, vergelijkbaar met het Heartbleed-logo

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]

Achtergrond[bewerken | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst bewerken]

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