Check Point onderzoekers onlangs besloten om de Linux kernel te beoordelen, en meer in het bijzonder keken ze naar chauffeurs proberen om hun eigen gebruik van de mmap rollen() functie.
CVE-2018-8781 Official Beschrijving:
De udl_fb_mmap functie in drivers / gpu / drm / udl / udl_fb.c op de Linux-kernel versie 3.4 en tot en met 4.15 heeft een integer-overflow kwetsbaarheid waardoor lokale gebruikers met toegang tot de udldrmfb bestuurder volledige lees- en schrijfrechten op kernel fysieke pagina te verkrijgen, wat resulteert in een code kan worden uitgevoerd in kernelruimte.
Hoe was CVE-2018-8781 Ontdekt?
Het idee van re-uitvoering kernel functies zal waarschijnlijk leiden tot fouten te wijten aan het feit dat er minder QA personeel in organisaties herziening van hun code en veiligheid als onderdeel van hun proces op te lossen, de onderzoekers verklaard.
Herziening van deze, ze opgegraven en openbaar gemaakt een aantal kwesties en een specifieke bug, dat is in feite een acht-jaar-oude kwetsbaarheid in een driver. De bug kan worden gebruikt voor escalatie privileges in kernelversies 3.4 en tot en met 4.15.
Deze bijzondere bug is geïdentificeerd als CVE-2018-8781, en het beïnvloedt de interne mmap() functie gedefinieerd in het fb_helper bestands operaties van de udl bestuurder van DisplayLink:
De video / drm module in de kernel definieert een standaard mmap() wrapper dat oproepen die real mmap() handler gedefinieerd door de specifieke driver. In ons geval is het beveiligingslek in de interne mmap() gedefinieerd in het fb_helper bestands operaties van de “udl” driver van de “DisplayLink”.
Dit is een klassiek voorbeeld van een Integer-Overflow, check Point verduidelijkt. Wat is een integer overflow? Een integer overflow plaatsvindt wanneer een rekenkundige bewerking probeert een numerieke waarde die buiten het bereik dat kan worden weergegeven met een gegeven aantal bits creëren.
Aangezien offset unsigned de programmeur overgeslagen check #1 en ging direct in te checken #2. Echter, de berekening “offset + size”kon wrap-around op een lage waarde, zodat we de controle te omzeilen, terwijl nog steeds met behulp van een illegale “offset” waarde.
Hoe was CVE-2018-8781 geverifieerd? Om dit te doen, De onderzoekers gebruikten een Ubuntu 64-bits virtuele machine, en publiceerde een gesimuleerde kwetsbaar driver. Op elke test mmap de bestuurder() handler bevatte de implementatie ermee werd beoogd om te controleren. Verdere analyse toonde aan dat de gebruiker kan lezen en schrijven van / naar de afgebeelde pagina's, waardoor een aanvaller uitvoeringscode in kernelruimte triggeren.
Meer details over CVE-2018-8781 en hoe aan te pakken te zijn beschikbaar.