
Инструмент для исследования безопасности PaperCut CVE-2026-81578 и CVE-2026-82078
Профессиональный инструмент безопасности для оценки уязвимостей PaperCut NG/MF и авторизованной эксплуатации
╔══════════════════════════════════════════════════════════════════╗
║ PAPERCUT SECURITY TOOL – POWER MODE ║
║ CVE-2026-81578 · CVE-2026-82078 · v3.1.0 ║
║ ⚡ powered by yora 1928 ⚡ ║
╚══════════════════════════════════════════════════════════════════╝
Этот инструмент обеспечивает безопасную, неразрушающую оценку уязвимостей и опциональную удалённую эксплуатацию (при явном разрешении) для серверов PaperCut NG/MF. Он предназначен для , которым необходимо проверить наличие двух критических уязвимостей PaperCut.
| CVE ID | Описание | CVSS | CWE |
|---|---|---|---|
| CVE-2026-81578 | Обход аутентификации через «complex direct» запросы Apache Tapestry | 8.8 (HIGH) | CWE-306 |
| CVE-2026-82078 | Небезопасная динамическая загрузка классов в утилитах подключения к базе данных | 9.4 (CRITICAL) | CWE-470 |
Ключевые ссылки:
Этот инструмент выполняет удалённое обнаружение на основе индикаторов. Он не претендует на доказательство эксплуатируемости на реальных серверах PaperCut, если не используется --force с явным письменным разрешением.
| Статус | Значение |
|---|---|
SAFE | Версия исправлена или индикаторы не обнаружены |
AFFECTED_VERSION | Версия соответствует уязвимому диапазону (рекомендации вендора) |
TAPESTRY_DETECTED | Обнаружен фреймворк Apache Tapestry (используется PaperCut) |
ADMIN_ENDPOINT_ACCESSIBLE | Административные конечные точки доступны без аутентификации |
DB_CONFIG_ACCESSIBLE | Конечные точки конфигурации базы данных доступны |
POTENTIALLY_VULNERABLE | Комбинация индикаторов указывает на возможную уязвимость, но эксплуатируемость не подтверждена |
NOT_DETECTABLE | Недостаточно информации для оценки |
Оценка уверенности рассчитывается на основе веса доказательств и ограничена 85% для удалённого обнаружения, чтобы избежать завышенных заявлений.
--force (требуется авторизация)--input, --threads)--prefilter)| Возможность | Против реальной цели | Против локальной лаборатории |
|---|---|---|
| Снятие отпечатков | ✅ Безопасно (только чтение) | ✅ Безопасно |
| Оценка CVE | ✅ Безопасно (на основе индикаторов) | ✅ Безопасно |
| Демонстрация концепции | ❌ ЗАБЛОКИРОВАНО (только localhost) | ✅ Разрешено |
| Удалённая эксплуатация | ⚠️ Требуется --force и авторизация | ✅ Разрешено |
| Изменение конфигурации | ❌ Никогда | ✅ Только в лаборатории |
| RCE / Выполнение полезной нагрузки | ❌ Никогда | ❌ Не реализовано (только симуляция) |
# Клонирование репозитория
git clone https://github.com/yourusername/papercut-cve-tool.git
cd papercut-cve-tool
# Создание виртуального окружения
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# или
.venv\Scripts\activate # Windows
# Установка зависимостей
pip install -r requirements.txt
# Проверка установки
python papercut.py self-test
# Показать справку
python papercut.py --help
# Полное сканирование цели
python papercut.py scan http://127.0.0.1:8080
# Только снятие отпечатков
python papercut.py fingerprint http://127.0.0.1:8080
# Проверка конкретной CVE
python papercut.py check http://127.0.0.1:8080 --cve 81578
# Запуск образовательной локальной лаборатории
python papercut.py lab
# Демонстрация концепции (только лаборатория)
python papercut.py exploit --cve 81578
# Удалённая эксплуатация (ТРЕБУЕТСЯ АВТОРИЗАЦИЯ)
python papercut.py exploit --cve 81578 --target https://target.com:9192 --force
# Пакетное сканирование с предварительным фильтром и многопоточностью
python papercut.py scan --input targets.txt --prefilter --threads 10 --timeout 5
# Анализ файла журнала на предмет IOC
python papercut.py detect server.log
# Генерация HTML-отчёта
python papercut.py report result.json --format html
# Интерактивный режим
python papercut.py interactive
| Команда | Описание |
|---|---|
scan TARGET | Полное сканирование уязвимостей со снятием отпечатков + проверками CVE |
fingerprint TARGET | Определение версии PaperCut, фреймворка Tapestry и открытых конечных точек |
check TARGET --cve {81578,82078} | Выполнение проверки индикаторов конкретной CVE |
lab [--port PORT] [--test] | Запуск образовательной локальной лаборатории (с опциональной самопроверкой) |
exploit --cve {81578,82078} [--target] [--force] | Демонстрация концепции или удалённая эксплуатация (если авторизовано) |
detect LOGFILE [--output] | Анализ файла журнала на предмет подозрительных индикаторов |
report INPUT [--format {html,json,text}] [--output] | Генерация профессионального отчёта из JSON-результатов |
interactive | Запуск интерактивного меню |
self-test | Выполнение внутренней диагностики |
| Опция | Описание |
|---|---|
--timeout N | Таймаут запроса в секундах (по умолчанию: 10) |
--verbose | Показать подробный отладочный вывод |
--quiet | Подавить необязательный вывод |
--output FILE | Сохранить результаты в файл |
--format {text,json,html} | Формат вывода для сканирования/отчёта |
| Опция | Описание |
|---|---|
--input FILE | Файл с целями (по одной на строку) для пакетного сканирования |
--output-dir DIR | Каталог для сохранения результатов пакетного сканирования |
--threads N | Количество параллельных потоков (пакетный режим) |
--prefilter | Проверка открытых портов перед сканированием (только пакетный режим) |
Лаборатория — это минимальный HTTP-сервер на Python, который воспроизводит концепции обеих уязвимостей в образовательных целях.
ConfigEditor, UserList) при отображении публичной страницы (Error.page, Exception.page)# Запуск лаборатории
python papercut.py lab
# Автоматический тест лаборатории
python papercut.py lab --test
Конечные точки лаборатории:
http://127.0.0.1:8080/lab/cve-81578?component=ConfigEditor&display=Errorhttp://127.0.0.1:8080/lab/cve-82078?driver=org.attacker.RCEPayloadИнструмент анализирует файлы журналов на предмет подозрительных индикаторов (IOC), выведенных из механики уязвимостей:
| Индикатор | Серьёзность | Описание |
|---|---|---|
tapestry_complex_direct | CRITICAL | Паттерн запроса Tapestry .page.*.zone |
admin_component_access | HIGH | Доступ к страницам ConfigEditor / UserList |
public_page_tapestry | HIGH | Страница Error / Exception с Tapestry |
tapestry_post_request | CRITICAL | POST-запрос к Tapestry .page |
db_driver_config | CRITICAL | Изменения конфигурации драйвера базы данных |
class_loading_error | HIGH | ClassNotFoundException / NoClassDefFoundError |
dynamic_class_loading | CRITICAL | Загрузка класса из внешнего источника |
python papercut.py detect /var/log/papercut/server.log --output detection.json
Создание профессиональных отчётов в форматах HTML, JSON или обычного текста.
# Сначала сохраните результаты сканирования в JSON
python papercut.py scan http://127.0.0.1:8080 --format json --output result.json
# Генерация HTML-отчёта
python papercut.py report result.json --format html --output report.html
# Генерация JSON-отчёта
python papercut.py report result.json --format json --output report.json
# Генерация текстового отчёта
python papercut.py report result.json --format text --output report.txt
HTML-отчёт включает:
На основе бюллетеня безопасности PaperCut (27 августа 2026 г.):
| Диапазон версий | Статус |
|---|---|
| 24.x < 24.1.10 | ❌ Затронута |
| 24.1.10+ | ✅ Исправлена |
| 25.x < 25.0.13 | ❌ Затронута |
| 25.0.13+ | ✅ Исправлена |
| 26.x < 26.0.5 | ❌ Затронута |
| 26.0.5+ | ✅ Исправлена |
| 23.x и ниже | ⚠️ Конец жизненного цикла – рекомендуется обновление |
PaperCut использует фреймворк Apache Tapestry. Формат «complex direct» запроса Tapestry позволяет указывать как:
Error.page)ConfigEditor.page)Проверка доступа проверяет только отображаемую страницу, а не выполняемый компонент. Злоумышленники могут вызывать административные компоненты при отображении публичных страниц, полностью обходя аутентификацию.
Вектор атаки: POST /papercut/ConfigEditor.page?... с запросом .zone, отображаемым через Error.page
PaperCut создаёт экземпляры классов JDBC-драйверов базы данных из настраиваемых имён драйверов (например, database.driver.class). Приложение не проверяет эти имена классов по белому списку. Злоумышленники, которые могут манипулировать конфигурацией системы (через обход аутентификации или другими способами), могут указать произвольные имена Java-классов, которые загружаются и создаются процессом службы PaperCut.
Воздействие: Удалённое выполнение кода (RCE) в контексте безопасности службы PaperCut.
Вклад приветствуется! Пожалуйста, прочитайте CONTRIBUTING.md для получения рекомендаций.
Лицензия MIT – см. LICENSE для подробностей.
Этот инструмент предназначен только для авторизованного тестирования безопасности и образовательных целей. Не используйте его против любой системы без явного письменного разрешения. Демонстрации концепций заблокированы для localhost и не будут работать против удалённых хостов.
Используя этот инструмент, вы соглашаетесь:
Версия: 3.1.0
Последнее обновление: 2026-08-29
Сопровождающий: yora 1928
«Безопасность — это не продукт, а процесс». – Брюс Шнайер
---
## 🚀 Следующие шаги на GitHub
1. **Откройте** `https://github.com/yora1928/PaperCut-CVE-2026-81578-82078`
2. **Нажмите** `README.md`
3. **Нажмите** на иконку карандаша (Редактировать)
4. **Удалите** всё старое содержимое
5. **Вставьте** весь текст выше
6. **Нажмите** `Commit changes...`
7. **Напишите** сообщение коммита: `Update README.md with final version`
8. **Нажмите** `Commit changes`
---
## 🎉 **Готово! Ваш проект выглядит профессионально и готов для портфолио!** ⚡