+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новости

В драйвере ядра ОС Linux выявлена уязвимость, которая позволяет локальному пользователю повысить свои привилегии и запустить на Linux любой код, включая вредоносный.

Ошибка целочисленного переполнения в одном из драйверов допускала повышение локальных привилегий и запуск произвольного кода в пространстве ядра. 

Запуск кода в пространстве ядра

В драйвере ядра ОС Linux выявлена уязвимость, которая позволяет локальному пользователю повысить свои привилегии и осуществлять чтение и запись в значимые области памяти ядра, то есть запустить на Linux любой код, включая вредоносный.

Уязвимость выявили эксперты компании CheckPoint при аудите безопасности ядра Linux и его драйверов. «Баг», как пишут они в отчете, появился в ядре Linux «восемь лет назад».

Технические подробности о «дыре» доступны на сайте CheckPoint.

Уязвимость под индексом CVE 2018-8718 затрагивает внутреннюю функцию mmap(), определяемую файловыми операциями fb_helper в драйвере «udl» от DisplayLink – производителя компьютерных видеокомпонентов и программного обеспечения для них.

В официальном описании говорится, что «функция udl_fb_mmap в drivers/gpu/drm/udl/udl_fb.c в ядре Linux 3.4 и далее вплоть до 4.15 содержит уязвимость класса целочисленное переполнение, благодаря которой локальные пользователи с доступом к драйверу udldrmfb имеют неограниченную возможность считывать и записывать разрешения на страницы физической памяти и таким образом производить запуск кода в пространстве ядра».

Модуль video/drm в ядре определяет оболочку mmap() по умолчанию, которая вызывает уже реальный обработчик mmap(), заданный конкретным драйвером. В нашем случае уязвимость содержится во внутреннем mmap(), заданном файловыми операциями fb_helper в драйвере «udl» от DisplayLink, - говорится в описании CheckPoint.

«Ошибка целочисленного переполнения (integer-overflow) возникает, когда арифметические операции выдают значение, находящееся за пределами диапазона, который может быть представлен заданным количеством битов. Чтобы предотвратить подобное, программисты должны реализовывать проверки диапазона. Отсутствие таких проверок - одна из ключевых и часто встречающихся причин возникновения уязвимостей данного типа. Интересно, однако, что за восемь лет этот баг никто так и не обнаружил.

В бюллетене CheckPoint указывается, что даже в таком популярном проекте Open Source, как ядро Linux, всегда можно найти уязвимости, «если знать, где искать».

 

 

Другие новости

Лучшая цена