De zwakke plek zit in Linux vanaf kernel-versie 2.6.39, die in mei vorig jaar is uitgekomen. Die nieuwe versie bracht onder meer een verbeterde geheugenbescherming, waarmee de voorgaande werd verwijderd. De nieuwe bescherming blijkt echter niet goed te controleren op permissies voor welk proces toegang krijgt tot het geheugen.

Meerdere exploits

Die fout valt te misbruiken om root-rechten te verkrijgen op een Linux-systeem. Een aanvaller moet daarvoor wel eerst lokale toegangsrechten hebben op die computer. Dit vermindert het risico van dit beveiligingsgat enigszins, hoewel lokale rechten op ook afstand zijn te verkrijgen. Hacker HD Moore, hoofdarchitect van hackerstool Metasploit, verwijst in een tweet naar een uitgebreide paper over dit beveiligingsgat.

De technische uitleg van ontdekker Jason Donenfeld is nog aangevuld met manieren om misbruik te maken van dit gat. Die zijn voor 32- en 64-bit varianten van Linux. De auteur had zijn exploit, Mempodipper genaamd, aanvankelijk niet gepubliceerd. Maar andere hackers hebben op basis van zijn blogposting al snel eigen exploitcode gemaakt én die online gezet.

Fix voorgesteld

De lekke controle op geheugentoegang, middels /proc/pid/mem , is al wel opgemerkt door de Linux-ontwikkelaars. Enkele dagen geleden is er een wijziging voorgesteld die dit gat moet dichten. De zogeheten commitdiff, een voorstel voor een verandering in de code, kan nog wel een nadelig effect hebben voor lang openstaande bestanden; dan wordt er een verkeerd deel van het virtuele geheugen uitgelezen. Indien dit inderdaad voor problemen zorgt, moet de commit weer ongedaan worden gemaakt, stelt Linux-maker Linus Torvalds in een bericht. Hij acht dat niet waarschijnlijk.

De lokale root-kaping van Linux gedemonstreerd: Update:

Verduidelijkt dat er voor een succesvolle aanval lokale rechten nodig zijn, wat niet hetzelfde is als lokaal fysieke toegang tot de computer.

En gecorrigeerd dat het mogelijk nadelige effect op virtueel geheugen (virtual memory) slaat, en niet op virtuele machines.