В середине июня в модуле ядра Linux rkvdec была выявлена уязвимость (CVE-2023-35829), приводящая к обращению к области памяти после её освобождения (use-after-free) из-за состояния гонки в процедуре выгрузки драйвера. Предполагалось, что проблема ограничивается вызовом отказа в обслуживании. Недавно в некоторых сообществах в Telegram и Twitter появилась информация, что уязвимость может быть использована для получения root-прав непривилегированным пользователем и в качестве доказательства на GitHub были опубликованы два рабочих прототипа эксплоитов (apkc/CVE-2023-35829-poc и ChriSanders22/CVE-2023-35829-poc — уже удалены GitHub).
Разбор опубликованных эксплоитов показал, что они содержат вредоносный код, устанавливающих в Linux-системы вредоносное ПО, настраивающее бэкдор для удалённого входа и отправляющего во вне некоторые файлы. Дополнительно был выявлен ещё один аналогичный вредоносный эксплоит (ChriSanders22/CVE-2023-20871-poc), прикрывающийся уязвимостью в VMware Fusion. Начинка вредоносных эксплоитов не имела отношения к уязвимостям в rkvdec и VMware Fusion, и базировалась на коде старого эксплоита, созданного для эксплуатации прошлогодней уязвимости в nftables (CVE-2022-34918).
Вредоностный эксплоит лишь симулировал получение root-доступа, выводя диагностические сообщения о ходе атаки, создавая отдельное пространство идентификаторов пользователей (user namespace) со своим пользователем root и запуская в изолированном от основной системы окружении оболочку /bin/bash, что создавало впечатление наличия root-доступа при запуске утилит, подобных whoami.
Активация вредоносного кода производилась через вызов исполняемого файла aclocal.m4 из сборочного сценария Makefile (обнаруживших вредоносный код насторожил тот факт, что по видом autoconf-сценария вызывается исполняемый файл в формате ELF). После запуска aclocal.m4 создавал в системе файл «~/.local/kworker» и прописывал его в файле «~/.bashrc» для автоматического запуска.
После запуска имя процесса менялось на «[kworker/8:3]», предполагая, что пользователь не заметит его в списке процессов на фоне обилия kworker-процессов ядра Linux). Затем процесс kworker загружал с внешнего сервера bash-скрипт и запускал его в системе. В свою очередь скрипт добавлял в файл «~/.ssh/authorized_keys» ключ подключения злоумышленников по SSH, сохранял в сервисе хранения transfer.sh архив с содержимым домашнего каталога пользователя и некоторыми системными файлами, такими как /etc/passwd, после чего отправлял на сервер атакующих ссылку на сохранённый архив.
Источник: https://www.opennet.ru/opennews/art.shtml?num=59440 Источник.