## https://sploitus.com/exploit?id=22CCF182-BE84-5BBC-B569-DA25837A73B7
> **Professional security research tool for PaperCut NG/MF vulnerability assessment & authorized exploitation**
```
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PAPERCUT SECURITY TOOL β POWER MODE β
β CVE-2026-81578 Β· CVE-2026-82078 Β· v3.1.0 β
β β‘ powered by yora 1928 β‘ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[]()
[]()
[]()
---
## π Overview
This tool provides **safe, nonβdestructive vulnerability assessment** and **optional remote exploitation** (with explicit authorization) for PaperCut NG/MF servers.
It is designed for **security researchers, penetration testers, and blueβteam defenders** who need to validate the presence of two critical PaperCut vulnerabilities.
| CVE ID | Description | CVSS | CWE |
|--------|-------------|------|-----|
| **CVE-2026-81578** | Authentication Bypass via Apache Tapestry "complex direct" requests | 8.8 (HIGH) | CWE-306 |
| **CVE-2026-82078** | Unsafe Dynamic Class Loading in Database Connection Utilities | 9.4 (CRITICAL) | CWE-470 |
**Key references:**
- [Rapid7 β PaperCut NG/MF Critical ZeroβDay Exploited in the Wild](https://www.rapid7.com/blog/post/etr-papercut-ng-mf-critical-zero-day-exploited-in-the-wild/)
- [IONIX β CVE-2026-81578 Deep Dive](https://www.ionix.io/threat-center/cve-2026-81578/)
- [VulDB β CVE-2026-81578](https://vuldb.com/cve/CVE-2026-81578) / [CVE-2026-82078](https://vuldb.com/cve/CVE-2026-82078)
- [PaperCut Security Bulletin β August 27, 2026](https://www.papercut.com/kb/Main/security-bulletin-27-aug-2026-urgent-security-advisory/)
---
## β οΈ Important: Accuracy & Responsible Disclosure
This tool performs **indicatorβbased remote detection**. It **does not** claim to prove exploitability on real PaperCut servers unless `--force` is used **with explicit written authorization**.
| Status | Meaning |
|--------|---------|
| `SAFE` | Version is fixed or no indicators detected |
| `AFFECTED_VERSION` | Version matches the affected range (vendor advisory) |
| `TAPESTRY_DETECTED` | Apache Tapestry framework detected (used by PaperCut) |
| `ADMIN_ENDPOINT_ACCESSIBLE` | Administrative endpoints are accessible without auth |
| `DB_CONFIG_ACCESSIBLE` | Database configuration endpoints are accessible |
| `POTENTIALLY_VULNERABLE` | Combination of indicators suggests possible vulnerability, but **exploitability is not verified** |
| `NOT_DETECTABLE` | Insufficient information to assess |
> Confidence scores are calculated based on the weight of evidence and are **capped at 85%** for remote detection to avoid overβclaiming.
---
## π Features
- β
**Fingerprinting** β detect PaperCut version, Apache Tapestry framework, and exposed endpoints
- β
**Indicatorβbased CVE Assessment** β safe, nonβdestructive checks with honest status reporting
- β
**Educational Local Lab** β reproduces vulnerability concepts in a controlled environment
- β
**Remote Exploitation** β with `--force` flag (**authorization required**)
- β
**Batch Scanning** β process multiple targets with multiβthreading (`--input`, `--threads`)
- β
**Port Prefilter** β quickly check open ports before deep scanning (`--prefilter`)
- β
**Log Detection** β IOCβbased analysis for suspicious activity patterns
- β
**Professional Reporting** β HTML, JSON, and text formats with detailed evidence
- β
**Interactive Mode** β menuβdriven interface for ease of use
- β
**SelfβTest** β verifies tool functionality and dependencies
---
## π‘οΈ Security Boundaries
| Feature | Against Real Target | Against Local Lab |
|---------|---------------------|-------------------|
| Fingerprinting | β
Safe (readβonly) | β
Safe |
| CVE Assessment | β
Safe (indicatorβbased) | β
Safe |
| Concept Demonstration | β **BLOCKED** (localhost only) | β
Allowed |
| Remote Exploitation | β οΈ **Requires `--force` & authorization** | β
Allowed |
| Configuration Changes | β Never | β
Only within lab |
| RCE / Payload Execution | β Never | β **Not implemented** (simulated only) |
---
## π¦ Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/papercut-cve-tool.git
cd papercut-cve-tool
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# or
.venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Verify installation
python papercut.py self-test
```
---
## π§ Quick Start
```bash
# Show help
python papercut.py --help
# Run a full scan against a target
python papercut.py scan http://127.0.0.1:8080
# Fingerprint only
python papercut.py fingerprint http://127.0.0.1:8080
# Check a specific CVE
python papercut.py check http://127.0.0.1:8080 --cve 81578
# Start the educational local lab
python papercut.py lab
# Run concept demonstration (lab only)
python papercut.py exploit --cve 81578
# Remote exploit (AUTHORIZATION REQUIRED)
python papercut.py exploit --cve 81578 --target https://target.com:9192 --force
# Batch scan with prefilter and threading
python papercut.py scan --input targets.txt --prefilter --threads 10 --timeout 5
# Analyze log file for IOCs
python papercut.py detect server.log
# Generate HTML report
python papercut.py report result.json --format html
# Interactive menu
python papercut.py interactive
```
---
## π CLI Commands
| Command | Description |
|---------|-------------|
| `scan TARGET` | Full vulnerability scan with fingerprinting + CVE checks |
| `fingerprint TARGET` | Detect PaperCut version, Tapestry framework, and exposed endpoints |
| `check TARGET --cve {81578,82078}` | Run a specific CVE indicator check |
| `lab [--port PORT] [--test]` | Start the educational local lab (with optional selfβtest) |
| `exploit --cve {81578,82078} [--target] [--force]` | Run concept demonstration or remote exploit (if authorized) |
| `detect LOGFILE [--output]` | Analyse log file for suspicious indicators |
| `report INPUT [--format {html,json,text}] [--output]` | Generate professional report from JSON results |
| `interactive` | Launch interactive menu |
| `self-test` | Run internal diagnostics |
### Global Options
| Option | Description |
|--------|-------------|
| `--timeout N` | Request timeout in seconds (default: 10) |
| `--verbose` | Show detailed debug output |
| `--quiet` | Suppress nonβessential output |
| `--output FILE` | Save results to file |
| `--format {text,json,html}` | Output format for scan/report |
### Batch & Prefilter Options
| Option | Description |
|--------|-------------|
| `--input FILE` | File with targets (one per line) for batch scanning |
| `--output-dir DIR` | Directory to save batch results |
| `--threads N` | Number of concurrent threads (batch mode) |
| `--prefilter` | Check open ports before scanning (batch only) |
---
## π§ͺ Educational Local Lab
The lab is a minimal Python HTTP server that reproduces the **concepts** of both vulnerabilities for educational purposes.
### CVE-2026-81578 β Tapestry "Complex Direct" Bypass
- Invokes an administrative component (`ConfigEditor`, `UserList`) while displaying a public page (`Error.page`, `Exception.page`)
- Demonstrates how authentication checks apply only to the displayed page, not the invoked component
### CVE-2026-82078 β Unsafe Class Loading
- Instantiates a JDBC driver class from a userβsupplied name without allowlist validation
- Shows how arbitrary class names could be loaded, potentially leading to RCE
```bash
# Start the lab
python papercut.py lab
# Run automated lab test
python papercut.py lab --test
```
**Lab endpoints:**
- `http://127.0.0.1:8080/lab/cve-81578?component=ConfigEditor&display=Error`
- `http://127.0.0.1:8080/lab/cve-82078?driver=org.attacker.RCEPayload`
---
## π Log Detection
The tool analyses log files for suspicious indicators (IOCs) derived from the vulnerability mechanics:
| Indicator | Severity | Description |
|-----------|----------|-------------|
| `tapestry_complex_direct` | CRITICAL | Tapestry `.page.*.zone` request pattern |
| `admin_component_access` | HIGH | ConfigEditor / UserList page access |
| `public_page_tapestry` | HIGH | Error / Exception page with Tapestry |
| `tapestry_post_request` | CRITICAL | POST request to Tapestry `.page` |
| `db_driver_config` | CRITICAL | Database driver configuration changes |
| `class_loading_error` | HIGH | ClassNotFoundException / NoClassDefFoundError |
| `dynamic_class_loading` | CRITICAL | Loading class from external source |
```bash
python papercut.py detect /var/log/papercut/server.log --output detection.json
```
---
## π Report Generation
Generate professional reports in HTML, JSON, or plain text.
```bash
# First, save scan results as JSON
python papercut.py scan http://127.0.0.1:8080 --format json --output result.json
# Generate HTML report
python papercut.py report result.json --format html --output report.html
# Generate JSON report
python papercut.py report result.json --format json --output report.json
# Generate text report
python papercut.py report result.json --format text --output report.txt
```
**HTML report includes:**
- Executive summary with target and fingerprint details
- CVE findings with status, confidence, indicators, and evidence
- Technical details and remediation recommendations
- Methodology and limitations disclaimer
---
## π Affected Versions
Based on PaperCut Security Bulletin (August 27, 2026):
| Version Range | Status |
|---------------|--------|
| 24.x *βSecurity is not a product, but a process.β β 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!** β‘