Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
postgresql-cve-2026-14662 — Отчет о проверке уязвимости записи за пределами границ CVE-2026-14662 в полнотекстовом поиске PostgreSQL (tsvector/tsquery) путем параллельного запуска в Docker версий до (18.4) и после (18.6) исправления, а также материалы презентации | Kitploit
Инструменты/GitHubGitHub/kihara-1/postgresql-cve-2026-14662
Анализ уязвимостейФаззингСтатьи и ИсследованияОбучение и ОбразованиеПодобранные РесурсыБезопасность Баз Данных
GitHubkihara-1/postgresql-cve-2026-14662

postgresql-cve-2026-14662

Отчет о проверке уязвимости записи за пределами границ CVE-2026-14662 в полнотекстовом поиске PostgreSQL (tsvector/tsquery) путем параллельного запуска в Docker версий до (18.4) и после (18.6) исправления, а также материалы презентации

Репозиторий
1522 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Отслеживаем CVE-2026-14662 — уязвимость записи за пределами буфера в полнотекстовом поиске PostgreSQL

Это запись о том, как мы запустили одновременно в Docker версии до исправления (18.4) и после исправления (18.6) для уязвимости CVE-2026-14662, обнаруженной в типах данных полнотекстового поиска PostgreSQL (tsvector / tsquery), и фактически наблюдали разницу в поведении.

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

Суть уязвимости

ПунктСодержание
CVECVE-2026-14662
Объектtsvector / tsquery в PostgreSQL
ТипНедостаточный размер выделяемой памяти из-за целочисленного переполнения и запись за пределами буфера
CVSS8.8 / 10.0 (High)
Дата публикации2026-08-13
Исправленные версии18.5, 17.11, 16.15, 15.19, 14.24

Цепочка слабостей выглядит следующим образом.

root@kitploit:~
CWE-190 (целочисленное переполнение) → CWE-131 (неверный расчёт размера буфера) → CWE-787 (запись за пределами буфера)
=корневая причина                                                        =конечное воздействие

Структура репозитория

root@kitploit:~
.
├── docs/
│   └── presentation.md   Слайды презентации (объяснение уязвимости + объяснение CWE)
└── docker/
    ├── README.md         Инструкция по использованию среды воспроизведения
    ├── docker-compose.yml
    ├── init/             Общий инициализирующий SQL для обеих версий
    ├── test/             PoC и демонстрационный SQL
    └── run.sh            Запуск → выполнение PoC → отображение результатов

Как попробовать

Если у вас есть Docker и Docker Compose, воспроизвести можно только следующими командами.

root@kitploit:~
cd docker
./run.sh

Будут запущены контейнеры 18.4 и 18.6, в них будет загружен одинаковый инициализирующий SQL, затем один и тот же PoC будет выполнен в обоих контейнерах, и результаты будут отображены рядом. Подробности см. в docker/README.md.

Результаты наблюдений

ТестPostgreSQL 18.4 (до исправления)PostgreSQL 18.6 (после исправления)
Повторение самообъединения tsquery через ORУспешно без ошибок до 18 раз (итого 8 650 748 байт)На 17-м разе: ERROR: tsquery is too large
Массив слов общей длиной 1 200 000 байтУспешно выполняетсяERROR: string is too long for tsvector (1200000 bytes, max 1048575 bytes)
Одно слово длиной 3 000 байтУспешно выполняетсяERROR: word is too long (3000 bytes, max 2046 bytes)

До исправления данные, превышающие внутренний предел представления (MAXSTRPOS = 1 048 575, происходящий из 20-битного битового поля), принимались без единой ошибки.

Кроме того, причина остановки 18.6 «ровно на 17-м разе» объясняется расчётом, и мы подтвердили, что теоретическое значение и измеренное значение совпадают побайтово (подробности в слайдах презентации).

Об исходном коде самого PostgreSQL

Для проверки различий мы использовали клон официального репозитория PostgreSQL, но из-за большого объёма (по 185 МБ каждый) они не включены в этот репозиторий. При необходимости получите их следующим образом.

root@kitploit:~
git clone --branch REL_18_4 --depth 1 https://github.com/postgres/postgres.git postgres-18.4
git clone --branch REL_18_6 --depth 1 https://github.com/postgres/postgres.git postgres-18.6

Файлы, в которые были внесены исправления, следующие три.

  • src/backend/utils/adt/tsquery_util.c
  • src/backend/utils/adt/tsvector.c
  • src/backend/utils/adt/tsvector_op.c

Примечания

  • Содержащийся здесь PoC предназначен для проверки того, что в исправленной версии работает проверка границ, для уже исправленной и опубликованной уязвимости. Он не содержит эксплойтов для выполнения произвольного кода.
  • Выполняйте запуск в одноразовом Docker-контейнере. Не запускайте в производственной среде.
  • Классификация CWE в этом репозитории — это анализ автора на основе текста официального бюллетеня (в официальном бюллетене номера CWE явно не указаны).

Ссылки

  • Официальный бюллетень CVE-2026-14662
  • CWE-787: Out-of-bounds Write
  • CWE-190: Integer Overflow or Wraparound
  • CWE-131: Incorrect Calculation of Buffer Size
Скачать инструмент