Уязвимость CVE-2023-2640 вызвана добавлением в 2018 году в модуль OverlayFS специфичного для Ubuntu изменения, реализующего функции для установки и удаления отдельных расширенных атрибутов файлов (trusted.overlayfs.* xattr) без проверки прав доступа. Так как для выполнения данной функции требуется предварительная блокировка inode, подразумевалось, что вызывающий функцию уже имеет привилегии, необходимые для низкоуровневой работы с ФС.
Изначально данное изменение распространялось только на атрибуты trusted.overlayfs.* и не представляло опасности. Но в 2022 году в основную реализацию OverlayFS в ядре Linux был добавлен патч, конфликтующий со специфичными для Ubuntu исправлениями, после которого проверка оказалась отключена для всех расширенных атрибутов, а не только для trusted.overlayfs. Через манипуляцию с пространствами имён идентификаторов пользователя (user namespace) непривилегированный пользователь мог выполнить монтирование OverlayFS и установить расширенные атрибуты для файлов в примонтированной ФС, в результате чего данные атрибуты переносились и для файлов в вышестоящем слое OverlayFS.
Вторая уязвимость CVE-2023-32629 также вызвана отсутствием должных проверок полномочий. Поверки не производились в функции ovl_copy_up_meta_inode_data из-за вызова процедуры ovl_do_setxattr вместо vfs_setxattr не только при доступе к внутренним расширенным атрибутам оверлейного слоя. Как и в случае с первой уязвимостью, изначально внесённое для Ubuntu исправление не приводило к уязвимости и проблема появилась только после изменения основной реализации OverlayFS, произведённого в 2019 году.
Заявлено, что для эксплуатации выявленных уязвимостей можно использовать уже доступные в открытом доступе рабочие эксплоиты, созданные для прошлой уязвимости в модуле OverlayFS. Для совершения атаки необходимо, чтобы в системе было разрешено монтирование разделов OverlayFS непривилегированным пользователем.
В качестве обходного пути блокирования уязвимостей достаточно отключить возможность создания непривилегированными пользователями пространств имён идентификаторов пользователей, выполнив команды:
sudo sysctl -w kernel.unprivileged_userns_clone=0 echo kernel.unprivileged_userns_clone=0 | sudo tee /etc/sysctl.d/99-disable-unpriv-userns.conf
Источник: http://www.opennet.ru/opennews/art.shtml?num=59502