
#PaperCut CVE-2026-81578 + CVE-2026-82078 Defense Toolkit 2 3 A **defensive** toolkit to check and understand exposure to the chained
A defensive toolkit to check and understand exposure to the chained pre-auth remote code execution vulnerabilities in PaperCut:
When chained: Internet → no auth → config manipulation → unsafe class loading → arbitrary Java execution → host command execution.
| File | Purpose |
|---|---|
papercut-exposure-checker.py | Deep defensive detection: version vs patch, web exposure, IOC payload scan, config anomaly scan, dropped .class payload scan |
papercut-cve-prevention.md | Reference showing vulnerable vs safe code patterns for both CWE-306 and unsafe class loading |
The scanner goes beyond version checking. It detects the actual attack artifacts observed in the wild (Huntress / PaperCut advisory):
< 24.1.10, < 25.0.13, < 26.0.5).--log) — detects attacker artifacts in server.log:
jdbc:derby:memory:pwn (Derby memory DB used in the gadget chain)No suitable driver found for jdbc:no:xdatabase error looking up cardIDwhoami & ver, whoami & ver & tasklist)--config) — flags attacker-modified external user-lookup settings:
jdbc:h2, )# Check web exposure of a PaperCut server (non-destructive)
python3 papercut-exposure-checker.py --url https://print.server:9191
# Evaluate a build version against patched builds
python3 papercut-exposure-checker.py --version 25.0.11.75758
# Scan a server log for published IOCs (payload artifacts)
python3 papercut-exposure-checker.py --log /usr/local/papercut/server/logs/server.log
# Scan config file for attacker-modified user-lookup settings
python3 papercut-exposure-checker.py --config /usr/local/papercut/server/server.properties
# Scan lib dir for dropped .class payloads
python3 papercut-exposure-checker.py --lib /usr/local/papercut/server/lib
# Full deep scan + HTML/JSON reports
python3 papercut-exposure-checker.py \
--url https://print.server:9191 \
--version 25.0.11.75758 \
--log /usr/local/papercut/server/logs/server.log \
--config /usr/local/papercut/server/server.properties \
--lib /usr/local/papercut/server/lib \
--html report.html --json report.json
pc-app.exe activity (post-exploitation)server.log missing, truncated, or deletedNo suitable driver found, specific CardID lookup errorsNote: Absence of IOCs does NOT prove a server is clean.
This toolkit is defensive only. It does not exploit anything and should be used only on servers you are authorized to test. The prevention reference shows correct/secure code patterns for learning and hardening — never for attacking.
Before production use, verify the exact Emergency Patch Release 2 build
numbers from the vendor advisory and update PATCHED_BUILDS in the scanner
(placeholder values are used).
jdbc:derby:memoryINIT/CALL (Derby→H2 gadget hints)--lib) — detects attacker-dropped .class files in server/lib (observed: Udydn.class, Moo97.class).