Recentelijk spraken we over een mogelijke beveiligingscrisis in de Linux-kernel. Experts hebben er tot vervelens toe over gedebatteerd, maar bugs blijven opduiken, en de laatste is al bijna een decennium op de vlucht. Bekend als Dirty COW of CVE-2016-5195, stelt deze bug een gebruiker in staat om binnen enkele seconden zijn privileges te verhogen, maar dat is nog niet alles. Dirty COW werd voor het eerst ontdekt elf jaar geleden, Linus Torvalds probeerde het te verhelpen, een latere update veroorzaakte een regressie, en het zweeft sindsdien in het digitale limbo.
Negen jaar, een losse exploit, en hetzelfde oude verhaal. Code is zo goed als de mensen die het schrijven, en ondanks de inspanning, toewijding, training en betrokkenheid van experts, is dat hele bataljon ogen niet genoeg om elke bug die verschijnt te vangen. Dit geldt voor software in het algemeen, maar de Linux-kernel is zo'n belangrijk element dat wanneer er een kwetsbaarheid in wordt ontdekt, het onvermijdelijk is om er beter naar te kijken. De kans dat een bug jarenlang in de kernel blijft, is vrij groot. Het gemiddelde is ongeveer vijf jaar, maar het nieuws van vandaag gooit dat gemiddelde uit het raam...
De artiestennaam voor de kwetsbaarheid is Dirty COW, en technisch staat het bekend als CVE-2016-5195. De geavanceerde beschrijving spreekt over een raceconditie (iets dat vrij gebruikelijk is in het algemeen) die werd gedetecteerd in de manier waarop het geheugensubsysteem van de kernel een duplicatietechniek genaamd Copy-On-Write verwerkt. Via deze scheur kan een gebruiker schrijftoegang krijgen tot geheugenkaarten die normaal alleen-lezen zouden zijn, wat leidt tot privilege-escalatie.
De onderzoeker en ontwikkelaar Phil Oester is degene die de exploit ontdekte, die hij identificeert als "gecompileerd in GCC 4.8.5 met datum 20150623", hoewel dat niet verhindert dat die exploit al langer op het web staat, vanwege de ouderdom van de bug. Hoe oud is het? Volgens Linus Torvalds zelf, elf jaar, en hij geeft toe dat zijn correctie behoorlijk slecht was. Waarom? Omdat een latere update het terugbracht, en het is sinds 2007 bij ons.
Zoals verwacht is Dirty COW al verholpen door de kernelbeheerders, maar nu is het tijd om updates uit te voeren, die uiteraard niet alle getroffen apparaten zullen bereiken. Gebruikers van distro's zouden de nodige waarschuwingen moeten ontvangen, maar het feit dat er miljoenen systemen met Linux zijn die geen updates kunnen ontvangen, herinnert ons eraan hoe delicaat een beveiligingsfout in de kernel kan zijn.