Исследователи Cisco Talos выпустили Несколько дней назад уязвимость в ядре Linux, которая может быть использована для кражи данных а также служат средством повышения привилегий и компрометации системы.
Уязвимость описывается как 'уязвимость раскрытия информации что может позволить злоумышленнику увидеть память стека ядра ».
CVE-2020-28588 - это уязвимость, которая обнаружена в устройствах ARM, функция proc / pid / syscall 32-битные устройства, работающие под управлением операционной системы. Согласно Cisco Talos, проблема была впервые обнаружена на устройстве под управлением Azure Sphere.
Уязвимость раскрытия информации существует в функциональности / proc / pid / syscall в Linux Kernel 5.1 Stable и 5.4.66. В частности, эта проблема появилась в v5.1-rc4 (фиксирует 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) и все еще присутствует в v5.10-rc4, так что все промежуточные версии, вероятно, будут затронуты. Злоумышленник может прочитать / proc / pid / syscall, чтобы активировать эту уязвимость, в результате чего ядро потеряет содержимое памяти.
Proc - это специальная псевдофайловая система в Unix-подобных операционных системах, которые используется для динамического доступа к данным процесса нашел в ядре. Представляет информацию о процессе и другую системную информацию в иерархической файловой структуре.
Например, он содержит подкаталоги / proc / [pid], каждый из которых содержит файлы и подкаталоги, которые предоставляют информацию о конкретных процессах, доступную для чтения с использованием соответствующего идентификатора процесса. В случае файла «syscall» это законный файл операционной системы Linux, который содержит журналы системных вызовов, используемых ядром.
Для компании lХакеры могут использовать уязвимость и получить доступ к операционной системе и файлу системных вызовов. через систему, используемую для взаимодействия между структурами данных ядра, Proc. Запись syscall procfs может быть использована, если хакеры выдают команды для генерации 24 байтов неинициализированной памяти кучи, что приводит к обходу рандомизации структуры адресного пространства ядра (KASLR).
Глядя на эту конкретную функцию, все выглядит нормально, но стоит отметить, что
args
переданный параметр пришел изproc_pid_syscall
функция и как таковая на самом деле имеет тип__u64 args
. В системе ARM определение функции преобразует размерarg
массив в четырехбайтовых элементах из восьми байтов (т.к.unsigned long
в ARM это 4 байта), что приводит к тому, чтоmemcpy
копируется в 20 байт (плюс 4 дляargs[0]
).Аналогично для i386, где
unsigned long
это 4 байта, простоargs
записываются первые 24 байта аргумента, а остальные 24 байта остаются нетронутыми.В обоих случаях, если мы оглянемся на
proc_pid_syscall
функция.В то время как в 32-битных ARM и i386 мы копируем только 24 байта в
args
массив, строка формата заканчивает чтение 48 байтовargs
матрица, поскольку%llx
Строка формата составляет восемь байтов в 32-битных и 64-битных системах. Таким образом, 24 байта неинициализированной памяти кучи в конечном итоге получают результат, что может привести к обходу KASLR.
Исследователи утверждают, что эту атаку «невозможно обнаружить удаленно в сети» потому что он читает законный файл из операционной системы Linux. «При правильном использовании хакер может воспользоваться этой утечкой информации для успешного использования других незащищенных уязвимостей Linux», - говорит Cisco.
В связи с этим недавно Google сказал:
«Недостатки безопасности памяти часто угрожают безопасности устройств, особенно приложений и операционных систем. Например, в мобильной операционной системе Android, также поддерживаемой ядром Linux, Google заявляет, что более половины уязвимостей безопасности, устраненных в 2019 году, были результатом ошибок безопасности памяти.
Последний, но тем не менее важный Рекомендуется обновить версии 5.10-rc4, 5.4.66, 5.9.8 ядра Linux, т.к. Эта уязвимость была протестирована и подтверждена для использования следующих версий ядра Linux.
В конце концов если вам интересно узнать об этом больше О публикации вы можете проверить подробности в по следующей ссылке.