SQL-инъекция в Apache Superset позволяет пользователю с правом чтения получить чужие данные

Apache Superset

Публичный демонстрационный эксплойт (вредоносный код, использующий уязвимость) к CVE-2026-23980 в Apache Superset появился в открытом доступе. Речь идёт о внедрении SQL-кода, или SQL-инъекции, в платформе для бизнес-аналитики. Superset помогает изучать данные и собирать панели управления, или дашборды: интерактивные отчёты с графиками и таблицами. Через такие отчёты обычно смотрят на продажи, клиентские базы, операционные метрики и показатели защищённости. Платформу разворачивают у себя компании разного размера, государственные структуры и аналитические подразделения. Готовый к запуску код упрощает и проверку защиты, и попытки атаки, поэтому обновляться теперь приходится быстрее, чем планировалось.

Уязвимость CVE-2026-23980

Проблему Apache раскрыла 24 февраля 2026 года. Формулировка в бюллетене - некорректная нейтрализация специальных символов в SQL-команде, она же CWE-89. Уязвимы все выпуски Superset начиная с 0.0.0 и до 6.0.0 не включительно, то есть фактически вся история продукта. Такой размах означает, что обновление потребуется и тем, кто годами не трогал свою установку. Аутентифицированный пользователь с правом только на чтение может подставить собственный фрагмент запроса в параметр с SQL-выражением и в условие отбора данных. База данных выполняет этот фрагмент как часть общего запроса, а приложение не отделяет чужую конструкцию от своей.

Инъекция относится к классу error-based, то есть основанных на ошибках. Атакующий отправляет пробные конструкции и следит за ответом базы данных: по тексту сообщений об ошибках он понимает, прошёл ли вставленный фрагмент. Прямого контроля над сервером такой приём не даёт, зато позволяет пошагово вытаскивать сведения из таблиц и уточнять структуру запроса. Это не удалённое выполнение кода без учётной записи, и преувеличивать масштаб не стоит. Ошибка лежит в генерации запросов, а значит проявляется там, где пользователь задаёт собственные фильтры или вычисляемые поля. Диагностика требует сопоставления журналов базы и обращений приложения, потому что сам факт ошибки ещё не говорит об атаке.

Насколько тяжёлыми окажутся последствия, определяет набор условий: движок базы данных, права учётной записи, обработка ошибок в приложении и сегментация сети. Оценка по шкале CVSS, принятой для сравнения уязвимостей, - 5.3 балла из 10, средний уровень. При этом требование иметь действующую учётную запись с правом чтения не стоит считать надёжной преградой. Права чтения массово выдают сотрудникам, аналитикам, подрядчикам и сервисным учётным записям. Superset часто подключают к хранилищам через одну общую учётную запись с широкими полномочиями, и тогда границы доступа к данным размываются. Одна ошибка в сборке запросов способна вывести пользователя за рамки, которые задумали разработчики, и открыть сведения, не предназначенные для его роли.

Исправление готово: дыру закрыли в Apache Superset 6.0.0, и проект советует обновиться именно до этой версии. Перед установкой стоит навести порядок в учёте. Нужен полный список развёрнутых экземпляров, включая тестовые, встраиваемые и работающие внутри отдельных подразделений. Такие установки часто остаются в стороне от централизованного управления исправлениями, поэтому их легко пропустить. Затем сверяют версии и пересматривают круг пользователей с правом чтения. Отдельная задача - понять, к каким базам ведут отчёты, графики и интерфейсы запросов. Экземпляры, доступные из интернета, и те, что подключены к хранилищам с чувствительными данными, требуют первоочередного внимания.

Пока обновление не установлено, риск снижают ограничительные меры. Доступ к Superset сужают до минимально нужного круга сотрудников. Учётные записи в базах данных получают только те привилегии, без которых работа невозможна. Сетевой доступ к серверам баз ограничивают. Логи приложений и баз просматривают на предмет необычных ошибок запросов и активности учётных записей с низкими правами. Такие сигналы легко потерять в общем потоке событий, поэтому настройки оповещений лучше проверить заранее. Встроенная аналитика в чужих продуктах тоже наследует эту уязвимость, если внутри работает уязвимая сборка платформы. Все перечисленные меры компенсирующие и не заменяют переход на 6.0.0.

Администраторам не стоит запускать чужой демонстрационный код на рабочих системах. Репозиторий на Python подают как доработанный эксплойт, и проверить его происхождение нельзя.

Публикация готового эксплойта меняет расчёт рисков. Свободно доступный код даёт атакующим образец для проверки чужих установок, а защитникам - повод ускорить работу. Скорость обновления, ревизия прав доступа и наблюдение за логами остаются самыми действенными способами удержать ситуацию под контролем. Особенно там, где учётные записи с правом чтения выдают широко и не пересматривают годами.

Ссылки

Комментарии: 0