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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-2005_lab — Самодостаточная Docker-лаборатория для отработки эксплуатации CVE-2026-2005 — переполнения буфера в куче в расширении pgcrypto PostgreSQL, позволяющего повышение привилегий и выполнение кода в контейнере. | Kitploit
Инструменты/GitHubGitHub/stvm8/cve-2026-2005_lab
Анализ уязвимостейЭксплуатацияCTFОбучение и ОбразованиеБезопасность Баз ДанныхЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubstvm8/cve-2026-2005_lab

CVE-2026-2005_lab

Самодостаточная Docker-лаборатория для отработки эксплуатации CVE-2026-2005 — переполнения буфера в куче в расширении pgcrypto PostgreSQL, позволяющего повышение привилегий и выполнение кода в контейнере.

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

Популярное

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

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

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

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

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

CVE-2026-2005 — Лабораторная работа по переполнению кучи в pgcrypto PostgreSQL

Автономная Docker-лаборатория для отработки эксплуатации CVE-2026-2005 — переполнения буфера в куче в расширении pgcrypto PostgreSQL, которое позволяет выполнять удалённый код без привилегий суперпользователя.

Затронутые версии: PostgreSQL ≤ 17.7 / 16.11 / 15.15 / 14.20 / 18.1
Исправлено в: 18.2, 17.8, 16.12, 15.16, 14.21 (выпущено 2026-02-12)


Установка

Требования: Docker, Docker Compose

root@kitploit:~
git clone <this-repo>
cd CVE-2026-2005
docker compose up -d

PostgreSQL будет прослушивать порт 127.0.0.1:5433.


Ваша отправная точка

Вы получили учётные данные базы данных из файла конфигурации приложения:

ПараметрЗначение
Хост127.0.0.1
Порт5433
База данныхtargetdb
Пользовательpentester
Парольpentester123

Подключитесь, чтобы подтвердить доступ:

root@kitploit:~
psql -h 127.0.0.1 -p 5433 -U pentester -d targetdb

Учётная запись имеет привилегию CREATE в схеме public. Она не является суперпользователем.


Цели

Получите оба флага, чтобы завершить лабораторную работу.

Флаг 1 — Повышение привилегий в базе данных

root@kitploit:~
SELECT * FROM flag_db;
-- Доступно только после повышения до суперпользователя в рамках сессии БД

Флаг 2 — Выполнение кода в контейнере

root@kitploit:~
/var/lib/postgresql/flag.txt
-- Доступно только после выполнения команд от имени OS-пользователя postgres внутри контейнера

Примечание о границах: COPY TO PROGRAM выполняется внутри Docker-контейнера, а не на хосте. Основное реальное воздействие — полный доступ на чтение к базе данных (все таблицы, все базы данных). Для достижения Docker-хоста требуется отдельная техника побега из контейнера.


Описание уязвимости

Ошибка находится в pgp_parse_pubenc_sesskey() внутри pgcrypto/pgp-pubenc.c.

При расшифровке пакета ключа сессии, зашифрованного открытым ключом, функция вычисляет длину ключа сессии как msglen - 3 из управляемой атакующим нагрузки RSA/ElGamal и копирует её в фиксированный 32-байтовый буфер (PGP_MAX_KEY) без проверки границ. Атакующий может записать сотни байтов за пределы границы буфера.

Эксплойт выполняется в три этапа:

  1. Утечка информации — переполнение раскрывает соседние метаданные кучи, утекая базу PIE и адреса кучи
  2. Произвольная запись — повреждение структуры dst для перезаписи CurrentUserId в .data значением 10 (BOOTSTRAP_SUPERUSERID)
  3. RCE в контейнере — с привилегиями суперпользователя COPY (SELECT '') TO PROGRAM '<cmd>' выполняет OS-команды от имени пользователя postgres внутри контейнера. В реальном развёртывании без Docker это означает доступ на уровне ОС к хосту базы данных.

Поскольку раскладка ASLR идентична для всех подключений к одному процессу postmaster, адреса, утёкшие при одном подключении, остаются действительными при следующем.


Полезные ссылки

  • NVD: CVE-2026-2005
  • Технический разбор: https://www.zeroday.cloud/blog/postgres-xint
  • Исходный код pgcrypto PostgreSQL: pgcrypto/pgp-pubenc.c
  • Разрешение символов: objdump -t $(which postgres) | grep CurrentUserId

Удаление

root@kitploit:~
docker compose down -v

Правовая информация

Эта лабораторная работа предназначена только для авторизованных исследований в области безопасности и обучения. Запускайте её только на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение.

Скачать инструмент