Lenovo не будет исправлять уязвимость в программе диагностики Solution Center
Исследователи безопасности из компании Pen Test Partners опубликовали инструкцию по эскалации привилегий через фирменное программное обеспечение Lenovo Solution Center (LSC), которое предустанавливается на компьютеры Lenovo под Windows.
Lenovo поставляет LSC с 2011 года. Не совсем понятно, в какой момент появилась уязвимость. Специалисты допускают, что она присутствует во всех версиях LSC, то есть на всех компьютерах под Windows, проданных за последние восемь лет.
Компания отказалась исправлять баг, поскольку 30 ноября 2018 года поддержка этого приложения официально завершилась. После того, как исследователи сообщили о найденной уязвимости, компания Lenovo изменила дату окончания поддержки на апрель 2018 года. «Дырявая» программа по-прежнему предлагается для скачивания с официального сайта.
Программное обеспечение Lenovo Solution Center предназначено для мониторинга общего состояния ПК. Оно контролирует батарею, файрвол, проверяет обновления драйверов и т. д. Программа предустанавливалась на большинство компьютеров Lenovo, включая настольные компьютеры и ноутбуки, как для бизнеса, так и для потребителей.
Наличие уязвимости проверено в версии 03.12.003.
Сама уязвимость — довольно простой фокус с повышением привилегий под Windows путём перезаписи списка контроля доступа DACL (discretionary access control list). Процесс Lenovo с высоким уровнем привилегий без разбора перезаписывает привилегии любого файла. В том числе того, который может контролировать пользователь с низким уровнем привилегий.
Если в системе установлен LSC, он добавляет задачу в лаунчер \Lenovo\Lenovo Solution Center Launcher, который работает с «самыми высокими привилегиями». Это видно в планировщике задач:
Эта задача обычно просто запускает LSC.Services.UpdateStatusService.exe через 10 минут после входа в систему.
В этом случае пользователь с низким уровнем привилегий может записать в контролируемое местоположение C:\ProgramData\Lenovo\LSC\log\ файл с жёсткой ссылкой на любой другой файл в системе, для которого он хочет повысить привилегии. Когда процесс Lenovo запускается, он перезаписывает привилегии файла по жёсткой ссылке разрешительными привилегиями. А именно, бинарник перезаписывает списки контроля доступа DACL всех файлов в директории C:\ProgramData\Lenovo\LSC\log\ и даёт полный доступ пользователям из группы Authenticated Users.
Для создания файла с жёсткой ссылкой подходит утилита CreateHardlink.exe из комплекта symboliclink-testing-tools от Google Project Zero или PowerShell-скрипт Native-HardLink от FuzzySecurity.
Например, создание файла 01.log с жёсткой ссылкой на hosts производится командой:
CreateHardlink.exe "C:\ProgramData\Lenovo\LSC\log\2019-01-01.log” "C:\Windows\System32\drivers\etc\hosts”
Затем выходите из системы, снова входите, ждёте 10 минут — и программа Lenovo Solution Center перезаписывает DACL для hosts.
С помощью такого трюка можно выполнить в системе произвольный код с правами администратора или системными привилегиями, пишет Pen Test Partners. Скажем, можно перезаписать DACL для какой-нибудь библиотеки с системными привилегиями, а потом изменить её содержимое, то есть добавить туда произвольный код.
Если на вашем устройстве Lenovo работает LSC — удалите эту программу, рекомендует Pen Test Partners. Собственно, то же самое рекомендует компания Lenovo, которая отказалась исправлять уязвимость, а посоветовала удалить программу и установить более современные инструменты диагностики Lenovo Vantage или Lenovo Diagnostics.
Уязвимость получила кодовый номер CVE-2019–6177.
Специалисты Pen Test Partners сообщили в Lenovo об уязвимости в мае 2019 года. На тот момент на странице скачивания LSC была указана дата официального окончания поддержки программы:»30 ноября 2018 года».
Та же дата (30 ноября 2018 года) указана сейчас на российской версии сайта:
Но сразу после получения отчёта компания Lenovo по какой-то причине изменила дату на апрель 2018 года, хотя последний релиз Lenovo Solution Center состоялся 15 октября 2018 года:
«Может, это опечатка, или Lenovo пытается замести следы?», — задаются вопросом Pen Test Partners. Представители Lenovo ответили, что нет ничего странного в выпуске обновлений после завершения поддержки программы.
Это уже не первая проблема с программой Lenovo Solution Center. В 2016 году сообщалось о похожем баге с эскалацией привилегий. В 2015 году хакерская группа Slipstream/RoL продемонстрировала proof-of-concept, который использовал ошибку LSC, позволяющую вредоносной веб-странице выполнять код на компьютере Lenovo с системными привилегиями.
Баги фирменной утилиты для диагностики дополняют список проблем с безопасностью в компьютерах китайской компании. В феврале 2015 года Lenovo подверглась обструкции после выявления на её компьютерах шпионской программы Superfish.