В коде NFS-сервера проектов FreeBSD и OpenBSD обнаружена уязвимость CVE-2024-29937, приводящая к удаленному выполнению кода от произвольного пользователя. Проблема существует с самого первого выпуска и затрагивает актуальные релизы OpenBSD 7.4 и FreeBSD 14.0. Детали будут представлены позже в рамках доклада на конференции по безопасности t2, проходящей в Хельсинки 18-19 апреля.
Kiddy – модуль для ядра Linux, разработанный с целью снижения рисков эксплуатации (некоторых) уязвимостей ядра.
В основе механизма защиты, реализованного в данном модуле, лежит простая идея, которая заключается в том, что в процессе атаки так или иначе происходит идентификация объекта атаки. Поэтому, если затруднить такую идентификацию, можно кратно повысить сложность эксплуатации, т.к. во множестве случаев готовые эксплойты содержат в себе таблицы различного рода смещений (оффсетов), соответствующих целевым версиям ядра.
Например, вот как это сделано для CVE-2017-1000112. Там же можно видеть, что идентификация версии ядра осуществляется с использованием uname.
Разработанный модуль является простым в реализации и позволяет:
менять идентификацию ядра;
ограничивать доступ к журналу ядра (dmesg);
ограничивать доступ к некоторым файлам в /proc, также содержащим идентифицирующую информацию;
ограничивать доступ к файлам и папкам, потенциально содержащим идентифицирующую информацию;
менять идентификацию версии ядра, доступную через vDSO.
В процессе сборки модуль позволяет использовать т.н. «пресеты», реализующие различную логику изменения идентификации. Например, используя пресет «windows» можно получить следующее поведение:
До загрузки модуля
$ ./misc/id.sh
** UNAME identidty leaks
- uname -r
2.6.32-754.35.1.el6.x86_64
- uname -v
#1 SMP Sat Nov 7 12:42:14 UTC 2020
- uname -a
Linux localhost.localdomain 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
** PROCFS identidty leaks
- /proc/cmdline
ro root=/dev/mapper/VolGroup00-LogVol00 rd_NO_LUKS no_timer_check console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=VolGroup00/LogVol01 rd_LVM_LV=VolGroup00/LogVol00 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
- /proc/version
Linux version 2.6.32-754.35.1.el6.x86_64 (mockbuild@x86-02.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) ) #1 SMP Sat Nov 7 12:42:14 UTC 2020
- /proc/sys/kernel/version
#1 SMP Sat Nov 7 12:42:14 UTC 2020
- /proc/sys/kernel/osrelease
2.6.32-754.35.1.el6.x86_64
which: no hostnamectl in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)
После загрузки модуля
$ ./misc/id.sh
** UNAME identidty leaks
- uname -r
Windows
- uname -v
NT 4.0
- uname -a
Linux localhost.localdomain Windows NT 4.0 x86_64 x86_64 x86_64 GNU/Linux
** PROCFS identidty leaks
- /proc/cmdline
\EFI\Microsoft\Boot\bootmgfw.efi
- /proc/version
Windows NT 4.0
- /proc/sys/kernel/version
NT 4.0
- /proc/sys/kernel/osrelease
Windows
which: no hostnamectl in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)
В своём бюллетене от 28 февраля NVIDIA раскрыла новые проблемы безопасности драйверов.
Уязвимости, затрагивающие в том числе и Linux-версию драйвера:
CVE‑2024‑0074, серьёзность — высокая. Уязвимость, благодаря которой злоумышленник может получить доступ к ячейке памяти после окончания буфера. Эксплуатация уязвимости может привести к отказу в обслуживании или подмене данных.
CVE‑2024‑0078, серьёзность — средняя. Уязвимость, благодаря которой пользователь гостевой среды может вызвать разыменование NULL-указателя в хосте и добиться отказа в обслуживании.
CVE‑2024‑0075, серьёзность — средняя. Уязвимость, благодаря которой пользователь может вызвать разыменование NULL-указателя и получить доступ к переданным параметрам, валидность которых не была проверена. Успешная эксплуатация этой уязвимости может привести к отказу в обслуживании и ограниченному раскрытию информации.
CVE‑2022‑42265, серьёзность — средняя. Уязвимость, благодаря которой непривилегированный пользователь может вызвать целочисленное переполнение и добиться к отказа в обслуживании, раскрытии информации и подмены данных.
Рекомендуется обновиться до версии драйвера, в которой эти уязвимости исправлены: 550.54.14 от 23 февраля, 535.161.07 от 22 февраля или 470.239.06 от 22 февраля, либо до более новой версии в соответствующей ветке. Все более ранние версии подвержены этим уязвимостям.
Обнаружена уязвимость в подсистеме Netfilter (CVE-2023-6817), которая, в теории, может быть использована локальным пользователем для повышения своих привилегий в системе. Корень проблемы кроется в использовании освобожденной памяти (use-after-free) в модуле nf_tables, ответственном за функциональность пакетного фильтра nftables.
Марк Ньюлин (Marc Newlin), который выявил уязвимость MouseJack семь лет назад, раскрыл информацию о аналогичной уязвимости (CVE-2023-45866), затрагивающей Bluetooth-стеки Android, Linux, macOS и iOS. Эта уязвимость позволяет осуществить подмену нажатий клавиш путем симуляции активности устройства ввода, подключенного по Bluetooth. Получив доступ к клавиатурному вводу, злоумышленник может выполнять различные действия, такие как выполнение команд в системе, установка приложений и перенаправление сообщений.
Разработчики FreeBSD выпустили патч для критической уязвимости, связанной с переполнением буфера в утилите ping.
Уязвимости присвоен номер CVE-2022-23093 (9,8 балла — высокий уровень риска). Данная проблема может привести к удалённому выполнению кода при проверке с помощью команды ping внешнего хоста, подконтрольного злоумышленнику.
Уязвимость как обычно связана с халатным отношением разработчиков к проверке выхода за границы буфера.
Функция pr_pack копирует IP- и ICMP-заголовки во внутренние буферы без каких-либо проверок на дополнительные расширенные заголовки, не принимая во внимание то, что в пакете после заголовка IP могут присутствовать дополнительные расширенные заголовки.
Таким образом, если хост вернет пакет с дополнительными заголовками, произойдет переполнение буфера, и атакующий сможет выполнить произвольный код в системе.
Исследователь Sönke Huster из Технического университета Дармштадта опубликовал подробности о 5 уязвимостях в стеке Wi-Fi ядра Linux (mac80211), эксплуатируемых «по воздуху». Три из уязвимостей гипотетически позволяют удалённое исполнение кода (RCE); две другие представляют собой атаки типа «отказ в обслуживании» (DoS).
В основе всех пяти уязвимостей лежит неправильная работа с памятью (переполнения буфера, use-after-free или разыменование нулевых указателей). Для эксплуатации уязвимостей достаточно отправить специальным образом сформированные фреймы Wi-Fi.
Уязвимостям присвоены номера CVE-2022-41674, CVE-2022-42719, CVE-2022-42720, CVE-2022-42721, CVE-2022-42722.
Утверждается, что уязвимости (по крайней мере, некоторые из них) были добавлены в первом квартале 2019 года. Уязвимы все версии Linux, начиная с 5.1 или 5.2.
Исследователи из Северо-западного Университета в Иллинойсе, Zhenpeng Lin, Yuhang Wu и Xinyu Xing опубликовали данные об уязвимости DirtyCred (идентификатор — CVE-2022-2588). Уязвимыми авторы называют все версии ядра, вышедшие за последние 8 лет.
Уязвимость использует технику use-after-free. Из-за ошибки в файле net/sched/cls_route.c ядро может сначала освободить память, а затем повторно использовать её. В данном случае в памяти размещаются реквизиты доступа, что позволяет злоумышленнику выполнить свою программу с повышенными привилегиями. Для эксплуатации уязвимости необходима программа с SUID битом, доступная злоумышленнику, например, su или sudo.
DirtyCred похожа на мартовскую DirtyPipe, но позволяет больше, например, выход из контейнера.
Прототип эксплоита пока не представлен. Атаки типа use-after-free достаточно сложны в исполнении и не гарантируют стабильный результат, однако обновиться всё-таки стоит.
Компании QNAP и Synology заявили о многочисленных критических Netatalk-уязвимостях серверов.
Согласно опубликованному отчёту Synology, с помощью многочисленных уязвимостей удалённые злоумышленники могут получить конфиденциальную информацию и, возможно, выполнить произвольный код с помощью уязвимой версии Synology DiskStation Manager (DSM) и Synology Router Manager (SRM).
Производитель уведомил своих клиентов и о трёх других уязвимостях CVE-2022-23125, CVE-2022-23122 и CVE-2022-0194, позволяющих удаленному злоумышленнику запускать произвольный код на целевых устройствах. Несмотря на то, что в прошлом месяце команда разработчиков Netatalk выпустила исправления безопасности для устранения недостатков, Synology сообщает, что выпуск некоторых из затронутых продуктов все еще «продолжается».
Компания также добавила, что уязвимости Netatalk уже исправлены для устройств, работающих под управлением DiskStation Manager (DSM) 7.1 или более поздней версии.
Тайваньский поставщик под брендом QNAP также призывает специалистов отключить AFP-протокол на сетевых хранилищах (Network Attached Storage, NAS) до устранения существующих недостатков. Кроме того, компания объявила об исправлении уязвимости в QTS 4.5.4.2012 build 20220419 и более поздних версиях.
Уязвимость в компоненте pkexec пакета Polkit, идентифицированная как CVE-2021-4034 (PwnKit), присутствует в конфигурации всех основных дистрибутивов Linux и может быть использована для получения привилегий root в системе, предупреждают исследователи из Qualys.
Уязвимый участок кода был отслежен до начального коммита pkexec, более 12 лет назад, что означает, что все текущие версии Polkit затронуты.
Бхарат Джоги, директор по исследованию уязвимостей и угроз в Qualys, пояснил, что PwnKit — это «уязвимость повреждения памяти в Polkit, которая позволяет любому непривилегированному пользователю получить полные привилегии root на уязвимой системе, при использовании конфигурации Polkit по умолчанию».
Код эксплойта для доказательства концепции (PoC), уже стал общедоступным.
Опубликована критическая уязвимость CVE-2021-44228 в библиотеке Log4j языка Java. Библиотека разрабатывается с 2001 года в Арасhe Software Foundation и представляет собой фреймворк ведения логов.
Обнародованы уязвимости CVE-2021-40823 и CVE-2021-40824 в клиентах Matrix, позволяющие раскрыть ключи сквозного шифрования. Уязвимости были найдены в ходе аудита безопасности клиента Element.
Уязвимости вызваны логическим ошибками в реализациях механизма предоставления повторного доступа к ключам, предложенных в matrix-js-sdk < 12.4.1 (CVE-2021-40823), matrix-android-sdk2 < 1.2.2 (CVE-2021-40824), matrix-rust-sdk < 0.4.0, FamedlySDK < 0.5.0 и Nheko ≤ 0.8.2. При определенных обстоятельствах можно заставить уязвимых клиентов раскрыть ключи шифрования сообщений, ранее отправленных этим клиентом собеседникам, учётные записи которых впоследствии взломали.
Netfilter — подсистема ядра, более известная по пользовательской утилите iptables, предоставляющей для неё интерфейс командной строки, и используемой для управления правилами брандмауэра.
CVE-2021-22555 при определённых условиях позволяет повышение привилегий. Уязвимость впервые появилась в Linux 2.6.19-rc1, но для её эксплуатации непривилегированному пользователю необходима функциональность user namespaces, появившаяся в 3.8 версии ядра, и которая может быть отключена в зависимости от дистрибутива.
В Arch Linux, Debian и Fedora исправления уже подготовили, а в openSUSE и Ubuntu, где user namespaces по-умолчанию включены, ещё нет.
Уязвимость связана с записью за пределы буфера (write out-of-bounds) и использованием данных в памяти после её освобождения (use-after-free). Она была использована для обхода изоляции контейнеров в kCTF demo cluster, за что Google обещала награду от $5000 до $10 000. Исследователь в сфере безопасности Andy Nguyen, обнаруживший уязвимость, собирается потратить выигранные $10 000 на благотворительность, в этом случае Google удвоит пожертвование.
В каталоге Python Package Index нашли несколько пакетов со скрытыми майнерами. Проблемы были в пакетах maratlib, maratlib1, matplatlib-plus, mllearnlib, mplatlib и learninglib, имена которых были придуманы в честь самого себя, а также похожими по написанию на популярные библиотеки (matplotlib) с расчётом, что пользователь ошибётся при написании или попросту перепутает название пакета и не заметит отличий. Пакеты были размещены в апреле под учётной записью nedog123 (другие подписи/ники: Marat Nedogimov и maratoff).
Вот небольшая статистика скачиваний за два месяца:
maratlib: 2,371
maratlib1: 379
matplatlib-plus: 913
mllearnlib: 305
mplatlib: 318
learninglib: 626
Суммарно выходит около 5000 раз, но учитывая зависимости речь скорее идёт о 2500 загрузках.
Вредоносный код был размещён в библиотеке maratlib, которая использовалась в остальных пакетах в форме зависимости. Сам код был скрыт с использованием самописной обфускации, не определяемой типовыми утилитами, и запускался при выполнении сборочного скрипта setup.py, который выполняется во время установки пакета. Далее с GitHub скачивался один из скриптов seo.sh, aza.sh, aza2.sh или aza-obf.sh, который уже загружал сам майнер Ubqminer или T-Rex.
В реализации системного вызова futex (fast userspace mutex) было обнаружено и устранено использование стековой памяти после освобождения. Это, в свою очередь, позволяло атакующему выполнить свой код в контексте ядра, со всеми вытекающими из этого последствиями, с точки зрения безопасности. Уязвимость находилась в коде обработчика ошибки.
Исправление данной уязвимости появилось в Linux mainline 28 января и позавчера попало в ядра 5.10.12, 5.4.94, 4.19.172, 4.14.218.
Во время обсуждения данного исправления было высказано предположения, что данная уязвимость существует во всех ядрах, начиная с 2008 года:
28 января была обнаружена 0-day уязвимость в криптографической библиотеке libgcrypt неким Tavis Ormandy из Project Zero (группа специалистов безопасности в Google, которые ищут 0-day уязвимости).
Уязвимости подвержена только версия 1.9.0 (ныне переименованная на апстримном ftp-сервере, чтобы избежать случайного скачивания). Из-за неверных предположений в коде возможно переполнение буфера, потенциально приводящее к удалённому выполнению кода. Переполнение может произойти в ходе расшифровки данных до этапа верификации и проверки подписи, что упрощает эксплуатацию.
Версия 1.9.1 с исправлением была выпущена на следующий день после сообщения об уязвимости. Баг появился в результате неудачной оптимизации функции записи хеша почти 2 года назад.
Специалисты из JSOF research labs сообщили о семи новых уязвимостях в DNS/DHCP сервере dnsmasq. Сервер dnsmasq весьма популярен и используется по умолчанию во многих дистрибутивах linux, а также в сетевом оборудовании Cisco, Ubiquiti и прочих. Уязвимости Dnspooq включают в себя отравление DNS-кэша, а также удаленное выполнение кода. Уязвимости исправлены в dnsmasq 2.83.
Google предупреждает о серьезной уязвимости типа удаленного выполнения кода (Zero-click) в стеке Bluetooth Linux.
Zero-click –– это удаленная атака на устройство, не требующая от пользователя никаких дополнительных действий. Она может быть проведена по воздуху (OTA, over-the-air): достаточно, чтобы жертва была в радиусе действия нужного беспроводного канала связи.
Intel Security Advisory рекомендует обновить ядро до версии 5.9.
Видео демонстрирующее использование уязвимости (осторожно музыка).
При включенной опции pwfeedback в настройках sudo, злоумышленник может вызвать переполнение буфера и повысить свои привилегии в системе.
Эта опция включает визуальное отображение введенных символов пароля в виде символа *. В большинстве дистрибутивов по умолчанию выключена. Однако, в Linux Mint и Elementary OS она включена в /etc/sudoers.
Для эксплуатации уязвимости злоумышленнику не обязательно быть в списке пользователей, которым разрешено выполнение sudo.
Уязвимость присутствует в sudo версий с 1.7.1 по 1.8.30. Уязвимость версий 1.8.26-1.8.30 изначально была под вопросом, но на текущий момент точно известно о том, что они также уязвимы.