В облаке OpenStack поверх хранилища Ceph рядовой участник проекта добывает ключ доступа администратора. Так работает уязвимость CVE-2020-27781: пользователь создаёт общий файловый ресурс, назначает права произвольной учётной записи cephx и получает её ключ через интерфейс Manila. Ошибка затрагивает ветки Ceph до 14.2.16, 15.x до 15.2.8 и 16.x до 16.2.0. Исправили её ещё в 2021 году, а 7 октября 2026 года запись обновили в базе GitHub под номером GHSA-32wm-mjvr-8w9f. Свежих данных о коде или о реальных атаках там нет, зато приведён актуальный статус версий.
Уязвимость CVE-2020-27781
Схема опирается на два компонента: драйвер CephFS внутри Manila и интерфейс ceph_volume_client в Ceph. Пользователь заказывает общий ресурс, на кластере появляется подтом файловой системы CephFS, а доступ к нему настраивают по именам клиентских учётных записей cephx. Эту систему аутентификации применяют в Ceph, чтобы разграничивать права клиентов и служб. Драйвер должен сверить запрошенное имя с владельцем ресурса, однако такой проверки в нём не заложили. Поэтому в ответе Manila уходит ключ любого указанного пользователя, в том числе давно существующего и привилегированного. Ключ виден всем участникам проекта, которому принадлежит ресурс, а не только тому, кто запросил доступ. Сам ресурс при этом остаётся обычным общим каталогом, и по внешним признакам выдать манипуляцию невозможно.
Получив чужой ключ, злоумышленник действует от имени его владельца. Уязвимость открывает путь к любым ресурсам, к которым есть доступ у этой учётной записи. Опаснее всего сценарий с предустановленным пользователем admin: у него права на весь кластер Ceph. Значит, обычный арендатор облака способен управлять хранилищем, читать и менять чужие данные и выполнять команды с правами администратора Ceph. Имя admin в Ceph задают по умолчанию, и меняют его редко.
Затронуты приватные облака, где Manila и CephFS работают вместе. Речь идёт о внутренних инфраструктурах компаний, операторов связи и госструктур, которые выдают файловые ресурсы сотрудникам и заказчикам. Внешний периметр здесь ни при чём: чтобы воспользоваться уязвимостью, достаточно учётной записи в OpenStack и права создавать общие ресурсы. Класс ошибки - CWE-522, недостаточная защита учётных данных. Секрет попадает к тому, кому он не предназначен, поэтому остальные механизмы разграничения доступа теряют смысл. Особенно неприятно это для многопользовательских площадок, где ключ администратора хранилища равносилен доступу к данным всех арендаторов сразу.
Рейтинг по классификации вендора - High. Вектор CVSS 3.1 описывает атаку с локальным доступом и низкую сложность. Требуемые привилегии тоже низкие, взаимодействие с пользователем не нужно вовсе. Ущерб для конфиденциальности и целостности высокий, доступность не страдает. Числовую оценку в открытой записи не приводят, так что корректнее говорить об уязвимости высокой степени опасности и опираться на сам вектор. Отдельные национальные бюллетени описывают эту ошибку как удалённое выполнение кода и повышение привилегий. Запись CVE и рекомендация GitHub говорят о краже учётных данных и повышении привилегий при локальном векторе атаки. Расхождение объясняется просто: бюллетени пересказывают категории риска, а не техническую суть.
История записи длинная. CVE-2020-27781 опубликовали 18 декабря 2020 года, а правки вносили вплоть до октября 2023-го. Патчи вышли в 2021 году в ветках Nautilus и Octopus. Обновление от октября 2026 года возвращает уязвимость в поле зрения тех, кто сверяется с базой GitHub, и приводит статус версий к текущему виду. Для администраторов ничего не меняется: уязвимость остаётся незакрытой везде, где обновление не поставили.
Исправления содержатся в Ceph 14.2.16, 15.2.8 и 16.2.0. Затронуты более старые выпуски веток 12.2.x, 13.2.x, 14.2.x и 15.2.x, которые встречаются в долгоживущих инсталляциях. Обходных путей нет, о чём разработчики пишут прямо. Значит, администраторам стоит сверить версии Ceph и Manila, а затем перейти на исправленный выпуск. Обновлять придётся и сервис, и сам кластер хранилища, поскольку ошибка лежит на стыке двух продуктов. Уязвимость нашли Джон Гарбатт, Джасон Бабель и Гаутам Пача Рави.
Приватные облака живут годами, и переход с 14.2.x на 15.2.8 или 16.2.0 иногда растягивается на месяцы. Пока этого не произошло, любой участник проекта с правом создавать общие ресурсы остаётся точкой входа в хранилище. Ключ администратора Ceph, попавший к арендатору, обесценивает прочие настройки доступа к данным. Пятилетняя давность ошибки здесь не защита: патч существует, но работает только там, где его установили.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2020-27781
- https://github.com/ceph/ceph/security/advisories/GHSA-32wm-mjvr-8w9f