Check Point Forscher beschlossen, vor kurzem des Linux-Kernel zu überprüfen, und insbesondere sahen sie in Fahrer versuchen, ihre eigene Nutzung des mmap zu rollen() Funktion.
CVE-2018-8781 Offizielle Beschreibung:
Die udl_fb_mmap Funktion in drivers / gpu / drm / UDL / udl_fb.c auf der Linux-Kernel-Version 3.4 und bis einschließlich 4.15 lokale Benutzer mit Zugriff auf den udldrmfb Fahrer eine ganzzahligen Überlaufschwachstelle vollständigen Lese- und Schreibzugriff auf Kernel physische Seiten zu erhalten, so dass, was zu einer Codeausführung im Kernelraum.
Wie wurde CVE-2018-8781 entdeckt?
Die Idee der Neuimplementierung Kernfunktionen ist wahrscheinlich Fehler aufgrund der Tatsache führt, dass weniger QS-Mitarbeiter in Organisationen ihren Code überprüfen und Sicherheitsfragen im Rahmen ihrer Verfahren zu beheben, Die Forscher erklärten,.
Überprüfung dieser, sie ausgegraben und eine Reihe von Fragen offenbart und einen spezifischen Fehler, der eine acht Jahre alte Sicherheitslücke in einem Treiber ist in der Tat. Der Fehler kann für die Eskalation Privilegien in Kernel-Versionen verwendet werden 3.4 und bis einschließlich 4.15.
Dieser besondere Fehler wird als CVE-2018-8781 identifiziert, und es wirkt sich auf die interne mmap() Funktion in den fb_helper Dateioperationen des UDL Treiber DisplayLink- definiert:
Der Video / DRM-Modul in den Kernel definiert eine Standard Mmap() Wrapper, dass das reale Mmap ruft() Handler durch den bestimmten Treiber definiert. In unserem Fall ist die Schwachstelle in der internen mmap() in den fb_helper Dateioperationen der „UDL“ Fahrer „Displaylink“ definiert.
Dies ist ein klassisches Beispiel für einen Integer-Überlauf, Check Point geklärt. Was ist ein Integer-Überlauf? Ein Ganzzahl-Überlauf stattfindet, wenn eine arithmetische Operation versucht, einen numerischen Wert zu schaffen, der außerhalb des Bereichs liegt, der mit einer vorgegebenen Anzahl von Bits dargestellt werden kann,.
Da Offset ohne Vorzeichen ist übersprungenen der Programmierer Prüfung #1 und ging direkt zu überprüfen #2. Jedoch, die Berechnung „offset + Größe“könnte Wrap-around auf einen niedrigen Wert, so dass wir die Kontrolle umgehen, während immer noch eine illegale „Offset“ Wert mit.
Wie wurde CVE-2018-8781 überprüft? Um dies zu tun, Die Forscher verwendeten eine Ubuntu 64-Bit virtuelle Maschine, und hochgeladen einen simulierten verwundbar Treiber. An jedem Test des Fahrers mmap() Handler enthalten, die Umsetzung sie zielten zu überprüfen. Eine weitere Analyse ergab, dass der Benutzer von / zu den abgebildeten Seiten lesen und schreiben, einen Angreifer ermöglicht Raum auszulösen Codeausführung im Kernel.
Weitere Details zu CVE-2018-8781 und wie zu adressieren sie sind erhältlich.