CVE-2026-90775 в Debian: отказ в обслуживании PostgreSQL через PostGIS и статус исправления

CVE: CVE-2026-90775
Продукт: Debian
Дата публикации: 13.09.2026
Критичность: HIGH
CVSS: 7.1 (4.0)
EPSS: 0,34%; процентиль 27,65%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


В пакете address-standardizer для Debian обнаружена уязвимость, позволяющая атакующему вызвать падение процесса PostgreSQL. Ошибка возникает при обработке невалидных значений параметра Weight в таблицах правил. В статье разобран механизм атаки, затронутые версии в Debian и текущий статус исправления.

Основные характеристики​


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

  • Тип ошибки: CWE-125 (Out-of-bounds Read). Код обращается к памяти вне выделенного массива.
  • CVSS 4.0: 7.1 (HIGH). Вектор: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X.
  • Условия атаки: Требуется локальный доступ (PR:L) и низкая сложность (AC:L). Пользовательское взаимодействие не требуется.
  • Эксплуатация: В каталоге CISA KEV не подтверждена. Публичный эксплойт в виде готового кода в источниках не указан.
  • EPSS: 0,35% (0.00345). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая.

Какие продукты и версии затронуты​


В Debian уязвимость затрагивает исходный пакет address-standardizer.

  • Debian forky: версия 3.7.0-1. Статус: open, исправление не назначено.
  • Debian sid: версия 3.7.0-1. Статус: open, исправление не назначено.

Данные получены из Debian Security Tracker. Для других дистрибутивов статус может отличаться, так как версии пакетов и сроки выпуска обновлений варьируются.

Причина уязвимости​


Причина ошибки — отсутствие валидации параметра Weight из таблиц правил, переданных вызывающим кодом.

В файле src/analyze.c (строка 860) и src/gamma.c (строки 301-311) значение Weight используется как индекс для доступа к массиву load_value. Если атакующий вставляет в таблицу правил строку с невалидным значением Weight (вне допустимого диапазона), код выполняет чтение памяти за границами массива.

Это приводит к неопределенному поведению и, в конечном итоге, к падению процесса PostgreSQL. Ошибка классифицируется как CWE-125 (Out-of-bounds Read).

Как работает атака​


Атакующий должен иметь возможность записывать данные в таблицы правил, используемые компонентом address_standardizer.

  1. Атакующий создает или модифицирует строки в таблице правил, задавая параметр Weight со значением, выходящим за пределы размера массива load_value.
  2. При выполнении запроса, который обрабатывает эти правила, код обращается к памяти по невалидному индексу.
  3. Происходит чтение вне границ массива (Out-of-bounds Read).
  4. Процесс PostgreSQL завершается с ошибкой, что приводит к отказу в обслуживании для всех подключенных сессий кластера.

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

Условия успешной эксплуатации​


Для успешной эксплуатации уязвимости необходимо выполнить следующие условия:

  • Локальный доступ: Атакующий должен иметь учетную запись с правами на запись в таблицы правил PostGIS address_standardizer.
  • Установка пакета: Система должна использовать уязвимую версию пакета address-standardizer (до исправления).
  • Активность компонента: Функции address_standardizer должны быть активны и обрабатывать данные из скомпрометированных таблиц правил.
  • Отсутствие защиты: Не должно быть механизмов, ограничивающих диапазон значений Weight на уровне приложения или базы данных.

Возможный сценарий атаки​


Сценарий атаки предполагает, что злоумышленник получил доступ к базе данных с правами на модификацию таблиц правил.

  1. Атакующий вставляет в таблицу правил строку с параметром Weight, равным, например, 1000, при том что размер массива load_value составляет 10.
  2. Пользователь или приложение выполняет запрос на стандартизацию адреса, который вызывает обработку этих правил.
  3. Код address_standardizer пытается прочитать элемент массива по индексу 1000.
  4. Происходит чтение памяти вне границ, что вызывает сбой процесса PostgreSQL.
  5. Все активные сессии базы данных прерываются, сервис становится недоступным.

Этот сценарий демонстрирует, как локальный нарушитель может вызвать отказ в обслуживании всего кластера.

Есть ли публичный эксплойт​


В предоставленных источниках нет информации о публичном эксплойте в виде готового кода или PoC.

  • PoC: Не подтверждено наличие публичного Proof of Concept.
  • Эксплуатация: В каталоге CISA KEV CVE-2026-90775 не числится.
  • Техническое описание: Механизм атаки описан в advisory VulnCheck и в коде на GitHub, что позволяет разработать эксплойт, но готового инструмента в публичном доступе не указано.

Отсутствие сведений о публичном эксплойте не означает, что атака невозможна. Разработчики могут самостоятельно написать код для проверки уязвимости.

Признаки эксплуатации​


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

  • Аномальные значения в таблицах правил: Строки с параметром Weight, выходящим за разумные пределы (например, отрицательные значения или очень большие числа).
  • Журналы PostgreSQL: Записи о падении бэкенд-процессов (backend process crash) с указанием ошибки сегментации (segmentation fault) или невалидного доступа к памяти.
  • Аудит доступа к БД: Запросы на вставку или обновление данных в таблицы, используемые address_standardizer, от пользователей с подозрительными правами.

Эти признаки требуют дополнительной проверки, так как могут возникать и по другим причинам.

Как обнаружить атаку​


Для обнаружения атаки и проверки уязвимости рекомендуется:

  • Аудит таблиц правил: Проверить таблицы, используемые address_standardizer, на наличие строк с невалидными значениями Weight.
  • Мониторинг логов PostgreSQL: Настроить алерты на сообщения о падении бэкенд-процессов, особенно если они связаны с обработкой адресов.
  • Анализ доступа: Проверить, кто имеет права на запись в таблицы правил и когда эти права были предоставлены.
  • Регрессионное тестирование: Выполнить запросы, вызывающие обработку правил, и убедиться, что база данных не падает при вводе граничных значений.

Эти меры помогут выявить как активную эксплуатацию, так и потенциальную уязвимость.

Как проверить свою версию​


Для проверки версии пакета address-standardizer в Debian используйте следующие команды:

Bash:
cat /etc/debian_version
cat /etc/os-release
apt-cache policy address-standardizer
dpkg-query -W -f='${Package} ${Version}\n' address-standardizer

Замените <имя-пакета> на address-standardizer в командах apt-cache и dpkg-query. Вывод покажет установленную версию и доступные обновления в репозиториях Debian.

Исправление​


Официальное исправление для Debian пока не выпущено. Статус в Debian Security Tracker: open, urgency: not yet assigned.

  • Ожидание обновления: Следите за анонсами в Debian Security Tracker и списком рассылки debian-security-announce.
  • Обновление из upstream: Разработчики PostGIS выпустили исправление в коммите a5cb4b1360a040973092f13b1af97a718e7e104a. Debian может включить это исправление в будущих обновлениях пакета.
  • Ручное обновление: Если критично, можно рассмотреть установку пакета из исходников с применением патча, но это не рекомендуется для продакшн-систем без тщательного тестирования.

До выхода официального обновления Debian рекомендуется применять временные меры защиты.

Временные меры защиты​


Пока исправление не выпущено, можно применить следующие временные меры:

  • Ограничение прав доступа: Убедитесь, что только доверенные пользователи имеют права на запись в таблицы правил address_standardizer.
  • Валидация на уровне приложения: Если возможно, добавьте проверку значений Weight в приложении перед записью в базу данных.
  • Использование триггеров PostgreSQL: Создайте триггеры, которые отклоняют вставку строк с невалидными значениями Weight.
  • Мониторинг: Усиленный мониторинг логов PostgreSQL на предмет падений бэкенд-процессов.

Эти меры снижают риск, но не устраняют уязвимость полностью.

Как проверить устранение уязвимости​


После применения исправления или временных мер проверьте их эффективность:

  1. Проверка версии: Убедитесь, что установленная версия пакета соответствует исправленной (после выхода обновления).
  2. Тестирование: Выполните запросы с невалидными значениями Weight и убедитесь, что база данных не падает.
  3. Проверка прав: Убедитесь, что права на запись в таблицы правил ограничены.
  4. Мониторинг: Проверьте, что алерты на падение бэкенд-процессов настроены и работают.

Эти шаги помогут подтвердить, что система защищена от атаки.

Вывод​


CVE-2026-90775 представляет собой серьезную угрозу для систем, использующих PostGIS address_standardizer в Debian. Уязвимость позволяет вызвать отказ в обслуживании PostgreSQL, что может привести к потере данных и прерыванию работы приложений.

Хотя вероятность эксплуатации в ближайшее время оценивается как низкая (EPSS 0,35%), администраторам следует отнестись к ней внимательно. Рекомендуется ограничить доступ к таблицам правил, усилить мониторинг и ждать официального обновления от Debian. После выхода патча его следует установить как можно скорее.

Официальные источники​


  1. NVD — CVE-2026-90775
  2. Debian Security Tracker — CVE-2026-90775
  3. FIRST EPSS — CVE-2026-90775

История обновлений статьи​


  • 15.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ