Er is een kwetsbaarheid ontdekt in de sudo-utility van Linux-besturingssystemen. Door de vulnerability kunnen gebruikers in bepaalde gevallen sudo-commando's uitvoeren, zelfs als ze daarvoor geen rechten hebben. De meeste installaties zijn niet door de fout aangetast.
De vulnerability, die de aanduiding CVE-2019-14287 meekrijgt, werd bekendgemaakt op de website van de sudo-utility en is gevonden door Joe Vennix van Apple Information Security. Bij dagelijks gebruik wordt sudo bijvoorbeeld gebruikt voor het uitvoeren van updates, en het installeren en verwijderen van programma's. De mogelijkheden van dit commando gaan echter veel verder.
Met sudo kunnen Linux-gebruikers bepaalde commando's in de terminal uitvoeren met de rechten van een superuser. Hierdoor krijgen gebruikers toegang tot het root-niveau van een Linux-installatie, waardoor ze toegang krijgen tot alle bestanden en commando's van het besturingssysteem. Gebruikers met root-access hebben hiermee de absolute controle over het systeem.
De sudo-commando's die gebruikt kunnen worden, staan in een bestand genaamd 'sudoers'. Ook wordt in dit bestand aangegeven welke gebruikers sudo-rechten hebben. Door de fout kunnen gebruikers in bepaalde gevallen deze beperkingen omzeilen door hun user id in de terminal aan te duiden als '-1' of '4294967295'. Sudo zet deze gebruikersnamen automatisch om in '0', wat de standaard-user id van de root user is. Zo krijgen gebruikers met onvoldoende rechten alsnog toegang tot de root van een systeem.
Deze fout werkt overigens alleen als gebruikers toestemming hebben om commando's namens andere users uit te voeren. Dit moet specifiek in een sudoers-bestand gezet worden. De kwetsbaarheid kan eigenlijk alleen misbruikt worden als een systeemeigenaar specifiek een sudoers-instructie heeft ingesteld voor een commando dat andere commando's kan uitvoeren, bijvoorbeeld 'vim'.
In de sudoer kan bijvoorbeeld 'myhost Bob = (ALL, !root) /usr/bin/vim' staan. In dit geval mag gebruiker Bob vim gebruiken als alle gebruikers, met uitzondering van de rootuser. Door gebruik van de kwetsbaarheid kan Bob vim wel gebruiken als de rootgebruiker. Hierdoor kan hij een root shell uitvoeren, waarna hij op het getroffen systeem alle mogelijke commando's kan gebruiken met roottoegang. Hij heeft nu de complete controle over het systeem. De gebruiker moet voordat de vulnerability te misbruiken is dus eerst toestemming hebben om het vim-commando te gebruiken namens andere users. Dit moet specifiek door de root user in een sudoers-bestand gezet worden. Op een standaardinstallatie is het exploiteren van deze kwetsbaarheid dus in bijna geen geval mogelijk, aangezien dit soort toestemmingen in de meeste Linux-distributies niet standaard worden ingesteld.
De beveiligingsfout is gedicht in sudo-versie 1.8.28, die deze week is uitgekomen en op korte termijn in vele Linux-distributies zal worden toegepast. Het team achter Ubuntu heeft de update al aan gebruikers verstrekt. In een security note laat Canonical weten hoe Ubuntu-gebruikers de sudo-versie kunnen updaten. De update verscheen onlangs ook al voor gebruikers van Arch Linux.