Вразливість у підсистемі iSCSI ядра Linux, що дозволяє підняти свої привілеї

У коді підсистеми iSCSI зі складу ядра Linux виявлено вразливість (CVE-2021-27365), що дозволяє непривілейованому локальному користувачеві виконати код на рівні ядра та отримати root-привілеї в системі. Для тестування доступний робочий прототип експлоїту. Уразливість усунена в оновленні ядра Linux 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 і 4.4.260. Оновлення пакетів з ядром доступні у дистрибутивах Debian, Ubuntu, SUSE/openSUSE, Arch Linux та Fedora. Для RHEL виправлення поки що не випущені.

Проблема викликана помилкою функції iscsi_host_get_param() зі складу модуля libiscsi, внесеної ще в 2006 році під час розробки підсистеми iSCSI. Через відсутність належних перевірок розміру деякі рядкові атрибути iSCSI, такі як hostname або username, можуть перевищувати значення PAGE_SIZE (4 КБ). Вразливість може бути експлуатована через відправлення непривілейованим користувачем Netlink-повідомлень, що встановлюють атрибути iSCSI значення, що перевищує PAGE_SIZE. Під час читання даних атрибутів через sysfs або seqfs викликається код, що передає атрибути у функцію sprintf для копіювання в буфер, розмір якого дорівнює PAGE_SIZE.

Експлуатація вразливості в дистрибутивах залежить від підтримки автоматичного завантаження модуля ядра scsi_transport_iscsi під час створення сокету NETLINK_ISCSI. У дистрибутивах, у яких цей модуль завантажується автоматично, атака може бути здійснена незалежно від використання функціональності iSCSI. Для успішного застосування експлоїту додатково потрібна реєстрація як мінімум одного транспорту iSCSI. Для реєстрації транспорту можна використовувати модуль ядра ib_iser, завантажуваний автоматично при спробі створення непривілейованим користувачем сокету NETLINK_RDMA.

Автоматичне завантаження необхідних для застосування експлоїту модулів підтримується в CentOS 8, RHEL 8 та Fedora при встановленні в системі пакету rdma-core, який є залежністю для деяких популярних пакетів і за умовчанням встановлюється в конфігураціях для робочих станцій, серверних систем з GUI та хост-оточень віртуалізації. При цьому rdma-core не встановлюється при використанні серверного складання, що працює тільки в консольному режимі, і при установці мінімального інсталяційного образу. Наприклад, пакет входить до базової поставки Fedora 31 Workstation, але не включений до Fedora 31 Server. Debian і Ubuntu менш схильні до проблеми, оскільки пакет rdma-core завантажує необхідні для атаки модулі ядра тільки за наявності обладнання RDMA.

Вразливість у підсистемі iSCSI ядра Linux, що дозволяє підняти свої привілеї

Як обхідний шлях захисту можна заборонити автоматичне завантаження модуля libiscsi: echo «install libiscsi /bin/true» >> /etc/modprobe.d/disable-libiscsi.conf

Додатково, у підсистемі iSCSI усунуто ще дві менш небезпечні вразливості, які можуть призвести до витоку даних з ядра: CVE-2021-27363 (витік відомостей про дескриптор транспорту iSCSI через sysfs) та CVE-2021-27364 (читання з області) . Зазначені вразливості можуть використовуватися для взаємодії через netlink-сокет із підсистемою iSCSI без наявності необхідних привілеїв. Наприклад, непривілейований користувач може підключитися до iSCSI і відправити команду "end a session" для обриву сеансу.

Джерело: opennet.ru

Додати коментар або відгук