Критическая ошибка в функции 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 и убедиться, что после обновления система продолжает корректно обрабатывать запросы к геоданным. В случае обнаружения следов несанкционированного доступа рекомендуется провести анализ журналов запросов и обратиться к специалистам по реагированию на киберугрозы.
Ссылки
- https://bdu.fstec.ru/vul/2026-11902
- https://github.com/YonLiud/geoserver-0day-rce/blob/main/README.md
- https://geoserver.org/announcements/vulnerability/2026/08/14/geoserver-2-28-5-released.html
- https://sploitus.com/exploit?id=A4039CC7-2E50-5B4C-906C-53025202BDD9