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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-14669 — Эксплойт proof-of-concept для CVE-2026-14669 — переполнение буфера в куче в функции to_char() PostgreSQL при обработке сокращений часовых поясов, позволяющее выполнить произвольный код (RCE) через утечку информации и ROP-цепочку; включает Docker-лабораторию и автоматизированный PoC. | Kitploit
Инструменты/GitHubGitHub/hackspeak/cve-2026-14669
Анализ уязвимостейЭксплуатацияТестирование на ПроникновениеРазработка Полезной НагрузкиБезопасность Баз ДанныхЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHub
hackspeak/cve-2026-14669

CVE-2026-14669

Репозиторий
31141 месяц назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

Эксплойт proof-of-concept для CVE-2026-14669 — переполнение буфера в куче в функции to_char() PostgreSQL при обработке сокращений часовых поясов, позволяющее выполнить произвольный код (RCE) через утечку информации и ROP-цепочку; включает Docker-лабораторию и автоматизированный PoC.

Поделиться

CVE-2026-14669 - PostgreSQL to_char() Timezone Abbreviation Heap Buffer Overflow

Функция to_char() в PostgreSQL содержит уязвимость переполнения буфера в куче при обработке форматирования часового пояса. Злоумышленник, задав чрезмерно длинную аббревиатуру часового пояса POSIX, может вызвать запись за пределы фиксированного 25-байтового буфера, что в сочетании с утечкой информации и ROP-цепочкой позволяет выполнить произвольный код удалённо.

Информация об уязвимости

  • Идентификатор CVE: CVE-2026-14669
  • Оценка CVSS: 8.8 (высокая)
  • Тип уязвимости: переполнение буфера в куче → удалённое выполнение кода
  • Затронутый компонент: функция PostgreSQL to_char(timestamptz)
  • Команда исследователей: V12 Security

Затронутые версии

Серия PostgreSQLЗатронутые версии
18.x18.0 – 18.5
17.x17.0 – 17.10
16.x16.0 – 16.14
15.x15.0 – 15.18
14.x14.0 – 14.23

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

  • PostgreSQL 18.6+
  • PostgreSQL 17.11+
  • PostgreSQL 16.15+
  • PostgreSQL 15.19+
  • PostgreSQL 14.24+

Принцип уязвимости

Путь обработки DCH_TZ / DCH_tz в formatting.c использует фиксированный 25-байтовый стековый буфер для хранения аббревиатуры часового пояса, однако не проверяет длину входных данных. Когда аббревиатура часового пояса превышает 24 байта, strcpy() выполняет запись за пределы буфера в кучу.

Путь срабатывания:

SET TIME ZONE '<超长缩写>+00';
SELECT to_char(now()::timestamptz, 'TZ');
  ↓
DCH_to_char() → DCH_from_char_action()
  ↓
strcpy(buf, tmtcTzn(...))  ← 堆溢出

Условия эксплуатации

  • Любые действительные учётные данные для аутентификации в БД (минимальные права уровня USAGE)
  • Порт базы данных, доступный по TCP
  • Возможность выполнять SQL-запросы

Полная цепочка эксплуатации

PoC от V12 Security включает три этапа:

Этап 1: Утечка информации

Повреждая соседние объекты кучи через переполнение, утекают базовый адрес PIE и указатели кучи для обхода ASLR.

Этап 2: Построение ROP-цепочки

ROP-гаджеты размещаются в куче с использованием больших объектов или полей bytea.

Этап 3: Перехват потока управления

Второе переполнение перезаписывает указатель на функцию в куче и переходит на ROP-цепочку для выполнения произвольной команды (с правами пользователя postgres).

Файлы PoC

  • poc.py — полный эксплойт-скрипт (210 строк, для PostgreSQL 19beta1)
  • requirements.txt — зависимости Python (psycopg, pwntools)
  • docker-compose.yml — среда тестирования уязвимости

Использование

1. Запуск тестовой среды

docker-compose up -d

Дождитесь завершения запуска контейнера (успешная проверка здоровья):

docker logs pg-tzlab

2. Установка зависимостей

pip install -r requirements.txt

3. Запуск PoC

python3 poc.py

По умолчанию подключение к 127.0.0.1:55432, пользователь postgres, пароль postgres.

После успешной эксплуатации в логах контейнера можно увидеть вывод выполнения команды:

docker logs pg-tzlab | grep PWNED

4. Пользовательская настройка

Измените константы в poc.py:

  • HOST, PORT — адрес цели
  • DEFAULT_COMMAND — команда для выполнения

⚠️ Важно: данный PoC содержит жёстко заданные адреса смещений для конкретной сборки (Docker-образ postgres:19beta1 sha256:a6bdd01...). Для других версий потребуется заново определить адреса гаджетов.

Меры по смягчению последствий

  1. Немедленно обновитесь до исправленной версии (самый эффективный способ)
  2. Сетевая изоляция: ограничьте доступ к порту базы данных только доверенными хостами
  3. Минимизация учётных записей: удалите ненужные учётные записи, требуйте надёжные пароли
  4. Мониторинг и оповещения: отслеживайте слишком длинные операторы SET TIME ZONE (более 50 символов)

Отказ от ответственности

⚠️ Данный PoC предназначен только для исследований в области безопасности, проверки уязвимостей и защитного тестирования.

  • Запускайте в разрушаемой тестовой среде (Docker lab)
  • Не используйте на неавторизованных системах или в производственной среде
  • Эксплуатация может привести к сбою процесса целевого сервера или перехвату потока управления

Использование данного PoC означает ваше согласие соблюдать местные законы и нормативные акты, а также границы авторизации целевой системы.

Ссылки

  • Официальное сообщение безопасности PostgreSQL
  • Анонс релиза PostgreSQL
  • Коммит с исправлением в апстриме
  • Технический анализ V12 Security
  • Оригинальный репозиторий PoC

Авторы оригинала

  • Оригинальный PoC: команда V12 Security
  • Оригинальный репозиторий: https://github.com/v12-security/pocs
  • Лицензия: в вышестоящем репозитории нет файла LICENSE, этот репозиторий использует MIT License
  • Данный репозиторий: зеркальная версия, сохраняет указание оригинального автора.
Скачать инструмент