
A comprehensive vulnerability scanner for CVE-2025-13780, a Remote Code Execution (RCE) vulnerability in pgAdmin 4 versions ≤ 8.14.
Комплексный сканер уязвимости CVE-2025-13780 — удаленного выполнения кода (RCE) в pgAdmin 4 версий ≤ 8.14.
Уязвимость существует в функции Restore pgAdmin 4. Приложение пытается заблокировать опасные команды оболочки (начинающиеся с \) с помощью регулярного выражения. Однако эту проверку можно обойти.
(^|\n)[ \t]*\\\xef\xbb\xbf заставляет регулярное выражение не срабатывать\n\r вместо \n перед обратной косой чертой# Клонировать репозиторий
git clone https://github.com/ThemeHackers/CVE-2025-13780.git
cd CVE-2025-13780
# Установить зависимости
pip install -r requirements.txt
requests — HTTP-библиотека для API-запросовrich (опционально) — улучшенный вывод терминала с цветами и индикаторами прогрессаpython-socketio и websocket-client (опционально) — поддержка WebSocket для режима эксплуатации# Базовое сканирование
python3 scanner.py http://localhost:5050
# С аутентификацией
python3 scanner.py http://localhost:5050 --email [email protected] --password admin
# Подробный режим
python3 scanner.py http://localhost:5050 -v
# Сканирование из файла
python3 scanner.py -f targets.txt
# С многопоточностью (по умолчанию: 5 потоков)
python3 scanner.py -f targets.txt --threads 10
# Экспорт результатов в JSON
python3 scanner.py -f targets.txt -o results.json --json
Сканер вычисляет оценку уверенности (0-100) на основе нескольких факторов:
Для версий ≤ 8.14:
Для версий > 8.14:
Для неизвестных версий:
Используйте Docker Compose для настройки уязвимого экземпляра pgAdmin 4:
docker-compose up -d
[email protected]admin| Код | Значение |
|---|---|
| 0 | Уязвимости не найдены |
| 1 | Обнаружена одна или несколько уязвимых целей |
| 2 | Произошли ошибки сканирования |
╔═══════════════════════════════════════════════════════════════╗
║ CVE-2025-13780 pgAdmin 4 Scanner ║
║ Regex Bypass Remote Code Execution ║
║ ║
║ Affected: pgAdmin 4 <= 8.14 ║
╚═══════════════════════════════════════════════════════════════╝
[*] Checking connectivity to http://localhost:5050
[+] Target appears to be pgAdmin
[+] Detected version: 8.14
[+] CSRF token obtained
[!] Version 8.14 is in vulnerable range (<= 8.14)
[*] Testing regex bypass patterns
[+] BOM bypass: BYPASSED
[+] CRLF bypass: BYPASSED
⚠️ VULNERABILITY DETECTED ⚠️
Этот инструмент предоставляется только для образовательных целей и для авторизованного тестирования безопасности.
Этот проект лицензирован по лицензии MIT — подробнее в файле LICENSE.
| Параметр | Описание |
|---|
target | URL цели (например, http://localhost:5050) |
-f, --file | Файл со списком целей (по одной на строку) |
-e, --email | Email pgAdmin для аутентификации |
-p, --password | Пароль pgAdmin для аутентификации |
-o, --output | Выходной файл для результатов |
--json | Вывод результатов в формате JSON |
-q, --quiet | Подавить баннер и информационные сообщения |
-v, --verbose | Включить подробный/отладочный вывод |
-t, --timeout | Тайм-аут запроса в секундах (по умолчанию: 10) |
--threads | Количество потоков для сканирования нескольких целей (по умолчанию: 5) |
--exploit-demo | Запустить демонстрационный режим эксплуатации |
--exploit | Выполнить реальный эксплойт (требуется --lhost) |
--lhost | IP-адрес атакующего для обратного вызова reverse shell |
--lport | Порт атакующего для reverse shell (по умолчанию: 4444) |
--cmd | Пользовательская команда для выполнения (опционально) |
| Фактор | Макс. баллов | Подробности |
|---|
| Версия в уязвимом диапазоне (≤ 8.14) | 40 | Определена версия ≤ 8.14 |
| Версия неизвестна | 15 | Когда версию не удается определить |
| Endpoint Restore доступен | 25 | API Restore доступен без аутентификации |
| Endpoint Restore (требуется аутентификация) | 15 | API Restore существует, но требует аутентификацию |
| Оба обхода (BOM и CRLF) работают | 25 | Оба метода обхода регулярного выражения успешны |
| Один метод обхода работает | 20 | Успешен либо BOM, либо CRLF-обход |
| Endpoint браузера доступен | 10 | Доступен основной интерфейс pgAdmin |