
Ferramenta de pesquisa de segurança para PaperCut CVE-2026-81578 & CVE-2026-82078
Ferramenta profissional de pesquisa de segurança para avaliação de vulnerabilidades e exploração autorizada do PaperCut NG/MF
╔══════════════════════════════════════════════════════════════════╗
║ PAPERCUT SECURITY TOOL – POWER MODE ║
║ CVE-2026-81578 · CVE-2026-82078 · v3.1.0 ║
║ ⚡ powered by yora 1928 ⚡ ║
╚══════════════════════════════════════════════════════════════════╝
Esta ferramenta fornece avaliação de vulnerabilidades segura e não destrutiva e (com autorização explícita) para servidores PaperCut NG/MF. Foi projetada para que precisam validar a presença de duas vulnerabilidades críticas do PaperCut.
| CVE ID | Descrição | CVSS | CWE |
|---|---|---|---|
| CVE-2026-81578 | Bypass de Autenticação via requisições "complex direct" do Apache Tapestry | 8.8 (ALTO) | CWE-306 |
| CVE-2026-82078 | Carregamento Dinâmico de Classes Inseguro em Utilitários de Conexão de Banco de Dados | 9.4 (CRÍTICO) | CWE-470 |
Referências principais:
Esta ferramenta realiza detecção remota baseada em indicadores. Ela não afirma comprovar explorabilidade em servidores PaperCut reais, a menos que --force seja usado com autorização escrita explícita.
| Status | Significado |
|---|---|
SAFE | Versão corrigida ou nenhum indicador detectado |
AFFECTED_VERSION | Versão corresponde à faixa afetada (advisory do fornecedor) |
TAPESTRY_DETECTED | Framework Apache Tapestry detectado (usado pelo PaperCut) |
ADMIN_ENDPOINT_ACCESSIBLE | Endpoints administrativos acessíveis sem autenticação |
DB_CONFIG_ACCESSIBLE | Endpoints de configuração do banco de dados acessíveis |
POTENTIALLY_VULNERABLE | Combinação de indicadores sugere possível vulnerabilidade, mas a explorabilidade não é verificada |
NOT_DETECTABLE | Informações insuficientes para avaliar |
As pontuações de confiança são calculadas com base no peso das evidências e são limitadas a 85% para detecção remota, a fim de evitar alegações excessivas.
--force (autorização necessária)--input, --threads)--prefilter)| Recurso | Contra Alvo Real | Contra Laboratório Local |
|---|---|---|
| Fingerprinting | ✅ Seguro (somente leitura) | ✅ Seguro |
| Avaliação de CVE | ✅ Seguro (baseado em indicadores) | ✅ Seguro |
| Demonstração de Conceito | ❌ BLOQUEADO (somente localhost) | ✅ Permitido |
| Exploração Remota | ⚠️ Requer --force e autorização | ✅ Permitido |
| Alterações de Configuração | ❌ Nunca | ✅ Somente no laboratório |
| RCE / Execução de Payload | ❌ Nunca | ❌ Não implementado (somente simulado) |
# Clone o repositório
git clone https://github.com/yourusername/papercut-cve-tool.git
cd papercut-cve-tool
# Crie o ambiente virtual
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# ou
.venv\Scripts\activate # Windows
# Instale as dependências
pip install -r requirements.txt
# Verifique a instalação
python papercut.py self-test
# Mostrar ajuda
python papercut.py --help
# Executar varredura completa contra um alvo
python papercut.py scan http://127.0.0.1:8080
# Somente fingerprinting
python papercut.py fingerprint http://127.0.0.1:8080
# Verificar um CVE específico
python papercut.py check http://127.0.0.1:8080 --cve 81578
# Iniciar o laboratório local educacional
python papercut.py lab
# Executar demonstração de conceito (somente laboratório)
python papercut.py exploit --cve 81578
# Exploração remota (AUTORIZAÇÃO NECESSÁRIA)
python papercut.py exploit --cve 81578 --target https://target.com:9192 --force
# Varredura em lote com pré-filtro e threading
python papercut.py scan --input targets.txt --prefilter --threads 10 --timeout 5
# Analisar arquivo de log em busca de IOCs
python papercut.py detect server.log
# Gerar relatório HTML
python papercut.py report result.json --format html
# Menu interativo
python papercut.py interactive
| Comando | Descrição |
|---|---|
scan TARGET | Varredura completa de vulnerabilidades com fingerprinting + verificações de CVE |
fingerprint TARGET | Detecta versão do PaperCut, framework Tapestry e endpoints expostos |
check TARGET --cve {81578,82078} | Executa verificação de indicador de CVE específico |
lab [--port PORT] [--test] | Inicia o laboratório local educacional (com autoteste opcional) |
exploit --cve {81578,82078} [--target] [--force] | Executa demonstração de conceito ou exploração remota (se autorizado) |
detect LOGFILE [--output] | Analisa arquivo de log em busca de indicadores suspeitos |
report INPUT [--format {html,json,text}] [--output] | Gera relatório profissional a partir de resultados JSON |
interactive | Inicia menu interativo |
self-test | Executa diagnósticos internos |
| Opção | Descrição |
|---|---|
--timeout N | Tempo limite de requisição em segundos (padrão: 10) |
--verbose | Mostra saída de depuração detalhada |
--quiet | Suprime saída não essencial |
--output FILE | Salva resultados em arquivo |
--format {text,json,html} | Formato de saída para varredura/relatório |
| Opção | Descrição |
|---|---|
--input FILE | Arquivo com alvos (um por linha) para varredura em lote |
--output-dir DIR | Diretório para salvar resultados do lote |
--threads N | Número de threads concorrentes (modo lote) |
--prefilter | Verifica portas abertas antes da varredura (somente lote) |
O laboratório é um servidor HTTP Python mínimo que reproduz os conceitos de ambas as vulnerabilidades para fins educacionais.
ConfigEditor, UserList) enquanto exibe uma página pública (Error.page, Exception.page)# Inicie o laboratório
python papercut.py lab
# Execute teste automatizado do laboratório
python papercut.py lab --test
Endpoints do laboratório:
http://127.0.0.1:8080/lab/cve-81578?component=ConfigEditor&display=Errorhttp://127.0.0.1:8080/lab/cve-82078?driver=org.attacker.RCEPayloadA ferramenta analisa arquivos de log em busca de indicadores suspeitos (IOCs) derivados da mecânica das vulnerabilidades:
| Indicador | Severidade | Descrição |
|---|---|---|
tapestry_complex_direct | CRÍTICO | Padrão de requisição .page.*.zone do Tapestry |
admin_component_access | ALTO | Acesso à página ConfigEditor / UserList |
public_page_tapestry | ALTO | Página Error / Exception com Tapestry |
tapestry_post_request | CRÍTICO | Requisição POST para .page do Tapestry |
db_driver_config | CRÍTICO | Alterações de configuração do driver de banco de dados |
class_loading_error | ALTO | ClassNotFoundException / NoClassDefFoundError |
dynamic_class_loading | CRÍTICO | Carregamento de classe de fonte externa |
python papercut.py detect /var/log/papercut/server.log --output detection.json
Gere relatórios profissionais em HTML, JSON ou texto simples.
# Primeiro, salve os resultados da varredura como JSON
python papercut.py scan http://127.0.0.1:8080 --format json --output result.json
# Gere relatório HTML
python papercut.py report result.json --format html --output report.html
# Gere relatório JSON
python papercut.py report result.json --format json --output report.json
# Gere relatório de texto
python papercut.py report result.json --format text --output report.txt
O relatório HTML inclui:
Com base no PaperCut Security Bulletin (27 de agosto de 2026):
| Faixa de Versão | Status |
|---|---|
| 24.x < 24.1.10 | ❌ Afetada |
| 24.1.10+ | ✅ Corrigida |
| 25.x < 25.0.13 | ❌ Afetada |
| 25.0.13+ | ✅ Corrigida |
| 26.x < 26.0.5 | ❌ Afetada |
| 26.0.5+ | ✅ Corrigida |
| 23.x e anteriores | ⚠️ Fim de vida – atualização recomendada |
O PaperCut usa o framework Apache Tapestry. O formato de requisição "complex direct" do Tapestry permite especificar ambos:
Error.page)ConfigEditor.page)A validação de acesso verifica apenas a página exibida, não o componente em execução. Atacantes podem invocar componentes administrativos enquanto exibem páginas públicas, contornando completamente a autenticação.
Vetor de ataque: POST /papercut/ConfigEditor.page?... com requisição .zone, exibida via Error.page
O PaperCut instancia classes de driver JDBC a partir de nomes de driver configuráveis (ex.: database.driver.class). A aplicação não valida esses nomes de classe contra uma allowlist. Atacantes que conseguem manipular a configuração do sistema (via bypass de autenticação ou outros meios) podem especificar nomes de classe Java arbitrários, que são carregados e instanciados pelo processo de serviço do PaperCut.
Impacto: Execução Remota de Código (RCE) sob o contexto de segurança do serviço PaperCut.
Contribuições são bem-vindas! Leia CONTRIBUTING.md para diretrizes.
Licença MIT – consulte LICENSE para detalhes.
Esta ferramenta é para testes de segurança autorizados e fins educacionais apenas. Não use contra qualquer sistema sem permissão escrita explícita. As demonstrações de conceito estão bloqueadas para localhost e não funcionarão contra hosts remotos.
Ao usar esta ferramenta, você concorda em:
Versão: 3.1.0
Última Atualização: 2026-08-29
Mantenedor: yora 1928
"Segurança não é um produto, mas um processo." – Bruce Schneier
---
## 🚀 Langkah Selanjutnya di GitHub
1. **Buka** `https://github.com/yora1928/PaperCut-CVE-2026-81578-82078`
2. **Klik** `README.md`
3. **Klik** icon pensil (Edit)
4. **Hapus** semua isi yang lama
5. **Paste** seluruh teks di atas
6. **Klik** `Commit changes...`
7. **Tulis** pesan commit: `Update README.md with final version`
8. **Klik** `Commit changes`
---
## 🎉 **Selesai! Project Anda sudah profesional dan siap untuk portfolio!** ⚡