
Strumento di ricerca sulla sicurezza per PaperCut CVE-2026-81578 e CVE-2026-82078
Strumento professionale di ricerca sulla sicurezza per la valutazione delle vulnerabilità di PaperCut NG/MF e sfruttamento autorizzato
╔══════════════════════════════════════════════════════════════════╗
║ PAPERCUT SECURITY TOOL – POWER MODE ║
║ CVE-2026-81578 · CVE-2026-82078 · v3.1.0 ║
║ ⚡ powered by yora 1928 ⚡ ║
╚══════════════════════════════════════════════════════════════════╝
Questo strumento fornisce una valutazione delle vulnerabilità sicura e non distruttiva e uno (con autorizzazione esplicita) per i server PaperCut NG/MF. È progettato per che devono convalidare la presenza di due vulnerabilità critiche di PaperCut.
| CVE ID | Descrizione | CVSS | CWE |
|---|---|---|---|
| CVE-2026-81578 | Bypass dell'autenticazione tramite richieste "complex direct" di Apache Tapestry | 8.8 (HIGH) | CWE-306 |
| CVE-2026-82078 | Caricamento dinamico non sicuro delle classi nelle utility di connessione al database | 9.4 (CRITICAL) | CWE-470 |
Riferimenti chiave:
Questo strumento esegue un rilevamento remoto basato su indicatori. Non pretende di dimostrare la sfruttabilità su server PaperCut reali a meno che non venga utilizzato --force con autorizzazione scritta esplicita.
| Stato | Significato |
|---|---|
SAFE | La versione è corretta o non sono stati rilevati indicatori |
AFFECTED_VERSION | La versione corrisponde all'intervallo interessato (avviso del fornitore) |
TAPESTRY_DETECTED | Framework Apache Tapestry rilevato (utilizzato da PaperCut) |
ADMIN_ENDPOINT_ACCESSIBLE | Gli endpoint amministrativi sono accessibili senza autenticazione |
DB_CONFIG_ACCESSIBLE | Gli endpoint di configurazione del database sono accessibili |
POTENTIALLY_VULNERABLE | La combinazione di indicatori suggerisce una possibile vulnerabilità, ma la sfruttabilità non è verificata |
NOT_DETECTABLE | Informazioni insufficienti per la valutazione |
I punteggi di confidenza sono calcolati in base al peso delle prove e sono limitati all'85% per il rilevamento remoto per evitare dichiarazioni eccessive.
--force (autorizzazione richiesta)--input, --threads)--prefilter)| Funzionalità | Contro Target Reale | Contro Laboratorio Locale |
|---|---|---|
| Fingerprinting | ✅ Sicuro (sola lettura) | ✅ Sicuro |
| Valutazione CVE | ✅ Sicuro (basato su indicatori) | ✅ Sicuro |
| Dimostrazione del Concetto | ❌ BLOCCATO (solo localhost) | ✅ Consentito |
| Sfruttamento Remoto | ⚠️ Richiede --force e autorizzazione | ✅ Consentito |
| Modifiche alla Configurazione | ❌ Mai | ✅ Solo nel laboratorio |
| RCE / Esecuzione Payload | ❌ Mai | ❌ Non implementato (solo simulato) |
# Clona il repository
git clone https://github.com/yourusername/papercut-cve-tool.git
cd papercut-cve-tool
# Crea l'ambiente virtuale
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# oppure
.venv\Scripts\activate # Windows
# Installa le dipendenze
pip install -r requirements.txt
# Verifica l'installazione
python papercut.py self-test
# Mostra l'aiuto
python papercut.py --help
# Esegui una scansione completa contro un target
python papercut.py scan http://127.0.0.1:8080
# Solo fingerprinting
python papercut.py fingerprint http://127.0.0.1:8080
# Controlla una CVE specifica
python papercut.py check http://127.0.0.1:8080 --cve 81578
# Avvia il laboratorio locale didattico
python papercut.py lab
# Esegui la dimostrazione del concetto (solo laboratorio)
python papercut.py exploit --cve 81578
# Sfruttamento remoto (AUTORIZZAZIONE RICHIESTA)
python papercut.py exploit --cve 81578 --target https://target.com:9192 --force
# Scansione batch con prefilter e threading
python papercut.py scan --input targets.txt --prefilter --threads 10 --timeout 5
# Analizza il file di log per gli IOC
python papercut.py detect server.log
# Genera report HTML
python papercut.py report result.json --format html
# Menu interattivo
python papercut.py interactive
| Comando | Descrizione |
|---|---|
scan TARGET | Scansione completa delle vulnerabilità con fingerprinting + controlli CVE |
fingerprint TARGET | Rileva la versione di PaperCut, il framework Tapestry e gli endpoint esposti |
check TARGET --cve {81578,82078} | Esegue un controllo specifico degli indicatori CVE |
lab [--port PORT] [--test] | Avvia il laboratorio locale didattico (con self‑test opzionale) |
exploit --cve {81578,82078} [--target] [--force] | Esegue la dimostrazione del concetto o lo sfruttamento remoto (se autorizzato) |
detect LOGFILE [--output] | Analizza il file di log per indicatori sospetti |
report INPUT [--format {html,json,text}] [--output] | Genera un report professionale dai risultati JSON |
interactive | Avvia il menu interattivo |
self-test | Esegue la diagnostica interna |
| Opzione | Descrizione |
|---|---|
--timeout N | Timeout della richiesta in secondi (default: 10) |
--verbose | Mostra output di debug dettagliato |
--quiet | Sopprime l'output non essenziale |
--output FILE | Salva i risultati in un file |
--format {text,json,html} | Formato di output per scansione/report |
| Opzione | Descrizione |
|---|---|
--input FILE | File con i target (uno per riga) per la scansione batch |
--output-dir DIR | Directory per salvare i risultati batch |
--threads N | Numero di thread concorrenti (modalità batch) |
--prefilter | Controlla le porte aperte prima della scansione (solo batch) |
Il laboratorio è un server HTTP Python minimale che riproduce i concetti di entrambe le vulnerabilità a scopo didattico.
ConfigEditor, UserList) mentre visualizza una pagina pubblica (Error.page, Exception.page)# Avvia il laboratorio
python papercut.py lab
# Esegui il test automatico del laboratorio
python papercut.py lab --test
Endpoint del laboratorio:
http://127.0.0.1:8080/lab/cve-81578?component=ConfigEditor&display=Errorhttp://127.0.0.1:8080/lab/cve-82078?driver=org.attacker.RCEPayloadLo strumento analizza i file di log per indicatori sospetti (IOC) derivati dalla meccanica delle vulnerabilità:
| Indicatore | Gravità | Descrizione |
|---|---|---|
tapestry_complex_direct | CRITICAL | Modello di richiesta Tapestry .page.*.zone |
admin_component_access | HIGH | Accesso alla pagina ConfigEditor / UserList |
public_page_tapestry | HIGH | Pagina Error / Exception con Tapestry |
tapestry_post_request | CRITICAL | Richiesta POST a Tapestry .page |
db_driver_config | CRITICAL | Modifiche alla configurazione del driver del database |
class_loading_error | HIGH | ClassNotFoundException / NoClassDefFoundError |
dynamic_class_loading | CRITICAL | Caricamento di una classe da fonte esterna |
python papercut.py detect /var/log/papercut/server.log --output detection.json
Genera report professionali in HTML, JSON o testo semplice.
# Prima, salva i risultati della scansione come JSON
python papercut.py scan http://127.0.0.1:8080 --format json --output result.json
# Genera report HTML
python papercut.py report result.json --format html --output report.html
# Genera report JSON
python papercut.py report result.json --format json --output report.json
# Genera report di testo
python papercut.py report result.json --format text --output report.txt
Il report HTML include:
Basato sul PaperCut Security Bulletin (27 agosto 2026):
| Intervallo di Versioni | Stato |
|---|---|
| 24.x < 24.1.10 | ❌ Interessato |
| 24.1.10+ | ✅ Corretto |
| 25.x < 25.0.13 | ❌ Interessato |
| 25.0.13+ | ✅ Corretto |
| 26.x < 26.0.5 | ❌ Interessato |
| 26.0.5+ | ✅ Corretto |
| 23.x e precedenti | ⚠️ Fine vita – aggiornamento consigliato |
PaperCut utilizza il framework Apache Tapestry. Il formato di richiesta "complex direct" di Tapestry consente di specificare entrambi:
Error.page)ConfigEditor.page)La validazione dell'accesso controlla solo la pagina visualizzata, non il componente in esecuzione. Gli attaccanti possono invocare componenti amministrativi mentre visualizzano pagine pubbliche, bypassando completamente l'autenticazione.
Vettore di attacco: POST /papercut/ConfigEditor.page?... con richiesta .zone, visualizzata tramite Error.page
PaperCut istanzia classi di driver JDBC da nomi di driver configurabili (es., database.driver.class). L'applicazione non valida questi nomi di classe contro una allowlist. Gli attaccanti che possono manipolare la configurazione di sistema (tramite il bypass dell'autenticazione o altri mezzi) possono specificare nomi di classi Java arbitrari, che vengono caricati e istanziati dal processo del servizio PaperCut.
Impatto: Esecuzione di codice remoto (RCE) nel contesto di sicurezza del servizio PaperCut.
I contributi sono benvenuti! Si prega di leggere CONTRIBUTING.md per le linee guida.
Licenza MIT – vedere LICENSE per i dettagli.
Questo strumento è destinato esclusivamente a test di sicurezza autorizzati e scopi didattici. Non utilizzarlo contro alcun sistema senza esplicita autorizzazione scritta. Le dimostrazioni dei concetti sono bloccate su localhost e non funzioneranno contro host remoti.
Utilizzando questo strumento, accetti di:
Versione: 3.1.0
Ultimo aggiornamento: 2026-08-29
Manutentore: yora 1928
"La sicurezza non è un prodotto, ma un processo." – Bruce Schneier
---
## 🚀 Passi Successivi su GitHub
1. **Apri** `https://github.com/yora1928/PaperCut-CVE-2026-81578-82078`
2. **Clicca** su `README.md`
3. **Clicca** sull'icona della matita (Modifica)
4. **Elimina** tutto il contenuto precedente
5. **Incolla** l'intero testo sopra
6. **Clicca** su `Commit changes...`
7. **Scrivi** il messaggio di commit: `Update README.md with final version`
8. **Clicca** su `Commit changes`
---
## 🎉 **Fatto! Il tuo progetto è professionale e pronto per il portfolio!** ⚡