Уязвимость в GeoTools позволяет удалённо выполнить код на сервере GeoServer

vulnerability

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

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

Причина - непринятие мер по защите структуры SQL-запроса, иначе говоря внедрение SQL-кода (CWE-89). Пользовательские данные попадают в тело запроса без должной проверки и экранирования. Из-за этого атакующий может дополнить обращение к базе собственными условиями и командами. Ошибка затрагивает участок библиотеки, отвечающий за проверку вхождения значений в массивы формата JSON. Когда такие значения приходят из внешнего запроса, они не отделяются от служебной части запроса. В итоге граница между данными и исполняемой конструкцией стирается.

Уязвимость получила идентификаторы BDU:2026-12700 и CVE-2026-76904. Она затрагивает GeoTools версий до 33.6, от 30.5 до 31.0, от 34.0 до 34.5 и 35.0. Вендор подтвердил проблему и устранил её в выпусках 33.6, 34.5 и 35.1. Обновления опубликованы в открытом репозитории проекта, там же приведены ссылки на рекомендации производителя и описание изменений.

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

Вектор атаки оценивается как сетевой, а сложность эксплуатации - как низкая. Для срабатывания не нужны ни учётная запись, ни действия со стороны пользователя. Оценка по CVSS 3.1 составляет 9,8 из 10, по CVSS 2.0 - 10 из 10. Столь высокие значения отражают полное влияние на конфиденциальность, целостность и доступность данных. Опубликованный эксплойт снижает порог входа: практическая эксплуатация не требует глубоких знаний о внутреннем устройстве продукта.

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

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

Разработчики GeoTools отреагировали на сообщение и подготовили патчи. Исправленные версии - 33.6, 34.5 и 35.1. Пользователям GeoServer и других продуктов на базе библиотеки рекомендуется установить их в кратчайшие сроки. Обновление закрывает саму причину ошибки, тогда как настройки на уровне сервера лишь снижают вероятность эксплуатации.

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

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

Ссылки

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