SQL-инъекция в GeoServer: патч закрывает путь к выполнению кода через CQL_FILTER

vulnerability

Критическая ошибка в функции jsonArrayContains() библиотеки GeoTools, используемой в сервере геоданных GeoServer, позволяет удаленному злоумышленнику выполнить произвольный код и раскрыть защищаемую информацию. Проблема связана с недостаточной защитой структуры SQL-запроса при обработке параметра CQL_FILTER. Эксплойт уже опубликован в открытом доступе, а разработчики выпустили обновление, устраняющее брешь.

Детали уязвимости

Уязвимость получила идентификатор BDU:2026-11902 и отнесена к типу CWE-89 - внедрение SQL. По шкале CVSS 3.1 базовый балл составляет 9,8 из 10, что соответствует критическому уровню опасности. Аналогичная оценка по CVSS 2.0 - 10. Для эксплуатации не требуются специальные привилегии или взаимодействие с пользователем, достаточно отправить специально сформированный HTTP-запрос к уязвимому серверу.

Суть проблемы в том, что функция jsonArrayContains() библиотеки GeoTools недостаточно корректно обрабатывает параметр CQL_FILTER, который применяется для фильтрации пространственных данных. Злоумышленник может подставить в этот параметр вредоносную SQL-конструкцию, и сервер выполнит ее как часть собственного запроса к базе данных. Это открывает широкие возможности: от чтения конфиденциальных данных, хранящихся в геоинформационной системе, до выполнения произвольных команд на сервере, если позволяют права подключения к базе данных.

Затронуты все версии GeoServer начиная с 2.25.3 и заканчивая 2.28.5 включительно. Пользователям, использующим эти сборки, настоятельно рекомендуется обновиться до версии 2.28.5, в которой ошибка устранена. Ссылка на официальное объявление разработчиков приведена на странице проекта GeoServe. Там же можно найти подробности о других исправлениях, вошедших в релиз.

Важно отметить, что эксплойт для данной уязвимости уже доступен в открытых репозиториях, поэтому риск практического применения высок. Подтверждена и информация о том, что уязвимость признана производителем. По этой причине задержка с установкой обновления особенно опасна: злоумышленники могут активно сканировать интернет в поисках незапатченных инсталляций.

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

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

Разработчики GeoTools и GeoServer оперативно отреагировали на обнаружение проблемы, выпустив исправление в течение нескольких дней после сообщения. Тем не менее, для многих организаций обновление сервера геоданных - процесс не мгновенный из-за особенностей эксплуатации и интеграции. В таких случаях необходимо как минимум убедиться, что сервер не доступен из глобальной сети, и настроить межсетевые экраны на отклонение подозрительных запросов.

В целом, обнаруженная брешь относится к классу классических SQL-инъекций, но ее критичность обусловлена расположением уязвимого компонента в цепочке обработки пользовательских данных. Похожие проблемы нередко встречаются в системах, где пользовательские фильтры напрямую конкатенируются с SQL-запросами без должной санитизации. Выход новой версии GeoServer закрывает конкретную ошибку, однако пользователям стоит следить за дальнейшими обновлениями, поскольку подобные недочеты могут встречаться и в других функциях, работающих с динамическими запросами.

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

Ссылки

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