On August 27, 2026, PaperCut Software published an urgent security advisory confirming it is investigating active, in-the-wild exploitation of a vulnerability chain affecting PaperCut NG and PaperCut MF print management servers. The vendor has confirmed customer incidents and is treating the issue as a security emergency. On August 28, PaperCut assigned CVE-2026-81578 (an authentication bypass, CWE-306 — Missing Authentication for Critical Function) and CVE-2026-82078 for the two vulnerabilities that together form the exploitation chain.
If this feels like déjà vu, it should. PaperCut's print management platform sits at a dangerous intersection in most enterprise environments: it is internet-reachable by design in many deployments, it runs with elevated privileges, and it historically has not been instrumented with the same EDR and log forwarding rigor as domain controllers or line-of-business servers. Attackers know this. Every PaperCut incident I have worked has followed the same pattern — the print server was the quietest box in the environment until it became the loudest.
At the time of initial disclosure, the vendor had not published CVSS scores, full vulnerability classes, or complete technical details for the second CVE in the chain. That does not reduce urgency — confirmed customer exploitation before full disclosure means the threat actors are ahead of your patch cycle. Treat this as an incident, not a patching ticket.
Technical Analysis
Affected Products
- PaperCut NG — all supported platforms (Windows, Linux, macOS application server deployments)
- PaperCut MF — same exposure profile
Organizations running the PaperCut Application Server with the web administration interface (default ports 9191/HTTP and 9192/HTTPS) exposed beyond the internal management network are at the highest risk. Cloud-hosted and reverse-proxied instances are similarly exposed if the admin interface is reachable.
Vulnerability Identifiers
| CVE ID | Description | CWE |
|---|---|---|
| CVE-2026-81578 | Authentication Bypass | CWE-306 — Missing Authentication for Critical Function |
| CVE-2026-82078 | Second vulnerability in the exploitation chain (technical details pending vendor disclosure) | Pending |
CVSS v4 scores were pending at the time of the initial advisory. Given CWE-306 on an internet-facing management application, defenders should treat CVE-2026-81578 as critical by default — unauthenticated access to a privileged function on a server-class application is the textbook precursor to remote code execution.
How the Attack Works (Defender's Perspective)
The confirmed chain combines an authentication bypass with a second vulnerability to achieve meaningful post-authentication impact. Based on the vulnerability class disclosed and PaperCut's architecture, the defender-relevant attack anatomy is:
- Initial access: The attacker sends crafted requests to the PaperCut web interface (TCP 9191/9192), reaching a critical function that lacks proper authentication checks (CWE-306). No valid credentials, session tokens, or user interaction are required.
- Chained escalation: The second vulnerability (CVE-2026-82078) is used after the bypass to perform actions available only to authenticated administrative contexts — historically in this product class that means configuration manipulation, script execution through admin features, or direct OS command execution.
- Post-exploitation: The PaperCut Application Server process (
pc-app.exeon Windows, thepc-appJava process on Linux) runs with high privileges. Command execution in this context gives attackers a SYSTEM/root-equivalent foothold — an ideal launch point for credential theft, lateral movement, and ransomware staging.
Exploitation Status
- Confirmed active exploitation in the wild. PaperCut has acknowledged customer incidents.
- The vulnerability was exploited as a zero-day — attacks preceded the public advisory.
- Monitor the CISA Known Exploited Vulnerabilities (KEV) catalog; actively exploited CVEs of this severity on edge-reachable software are typically added rapidly, which triggers Binding Operational Directive 22-01 remediation timelines for federal agencies and serves as a de facto deadline benchmark for the private sector.
Detection & Response
The most reliable detection surface for PaperCut compromise is process behavior on the application server: the PaperCut server process spawning shells, script interpreters, or reconnaissance tooling is almost never legitimate. The second surface is web access logs showing unauthenticated requests hitting administrative endpoints.
Sigma Rules
---
title: PaperCut Application Server Spawning Suspicious Child Processes
id: 9f2c7a41-6b3d-4e58-a1c9-papercut0001
status: experimental
description: Detects the PaperCut NG/MF application server process spawning command shells, script interpreters, or living-off-the-land binaries — consistent with post-exploitation of CVE-2026-81578 / CVE-2026-82078.
references:
- https://www.rapid7.com/blog/post/etr-papercut-ng-mf-critical-zero-day-exploited-in-the-wild
- https://attack.mitre.org/techniques/T1190/
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/08/28
tags:
- attack.initial_access
- attack.t1190
- attack.execution
- attack.t1059
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\pc-app.exe'
- '\java.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\mshta.exe'
- '\curl.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
- '\whoami.exe'
- '\net.exe'
- '\net1.exe'
- '\nltest.exe'
- '\ipconfig.exe'
condition: selection_parent and selection_child
falsepositives:
- Rare administrative scripting invoked via PaperCut's print scripting features — validate against approved admin activity
level: critical
---
title: PaperCut Server Linux Post-Exploitation Shell Execution
id: 3b8e1d52-7a4f-4c21-b9e6-papercut0002
status: experimental
description: Detects the PaperCut pc-app Java process on Linux spawning interactive shells, downloaders, or reconnaissance commands following exploitation of the CVE-2026-81578 authentication bypass chain.
references:
- https://www.rapid7.com/blog/post/etr-papercut-ng-mf-critical-zero-day-exploited-in-the-wild
- https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/08/28
tags:
- attack.initial_access
- attack.t1190
- attack.execution
- attack.t1059.004
logsource:
category: process_creation
product: linux
detection:
selection_parent:
ParentCommandLine|contains:
- 'pc-app'
- 'papercut'
selection_child:
Image|endswith:
- '/sh'
- '/bash'
- '/dash'
- '/zsh'
- '/curl'
- '/wget'
- '/nc'
- '/ncat'
- '/python'
- '/python3'
- '/perl'
- '/base64'
- '/whoami'
- '/id'
condition: selection_parent and selection_child
falsepositives:
- Legitimate PaperCut custom print scripts invoking shell — uncommon; review and allowlist by exact command line
level: critical
---
title: Unauthenticated Requests to PaperCut Administrative Endpoints
id: 61c4f9a8-2d7b-4e33-a5f1-papercut0003
status: experimental
description: Detects inbound HTTP requests targeting PaperCut NG/MF administrative and application paths from external or non-management source addresses, consistent with probing or exploitation of CVE-2026-81578.
references:
- https://www.rapid7.com/blog/post/etr-papercut-ng-mf-critical-zero-day-exploited-in-the-wild
- https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/08/28
tags:
- attack.initial_access
- attack.t1190
logsource:
category: webserver
detection:
selection_uri:
cs-uri|contains:
- '/app'
- '/admin'
- '/api'
- '/rpc'
selection_port:
dst-port:
- 9191
- 9192
condition: selection_uri and selection_port
falsepositives:
- Legitimate user and admin traffic to PaperCut — baseline source addresses and alert on anomalies from outside known management/user subnets
level: high
KQL — Microsoft Sentinel / Defender
This query hunts for the PaperCut server process spawning suspicious children, and joins against inbound network connections on PaperCut's default ports to surface externally reachable instances.
// Hunt 1: PaperCut server process spawning suspicious child processes (post-exploitation behavior)
let SuspiciousChildren = dynamic(["cmd.exe","powershell.exe","pwsh.exe","mshta.exe","rundll32.exe","regsvr32.exe","wscript.exe","cscript.exe","certutil.exe","bitsadmin.exe","curl.exe","whoami.exe","net.exe","nltest.exe"]);
DeviceProcessEvents
| where TimeGenerated > ago(14d)
| where InitiatingProcessFileName =~ "pc-app.exe"
or (InitiatingProcessFileName =~ "java.exe" and InitiatingProcessCommandLine has_any ("papercut","pc-app"))
| where FileName in~ (SuspiciousChildren)
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, AccountName, ReportId
| order by TimeGenerated desc;
// Hunt 2: Inbound connections to PaperCut default ports from non-RFC1918 sources (exposure validation)
DeviceNetworkEvents
| where TimeGenerated > ago(14d)
| where LocalPort in (9191, 9192)
| where ActionType == "InboundConnectionAccepted"
| where not(RemoteIP startswith "10." or RemoteIP startswith "192.168." or RemoteIP matches regex @"^172\.(1[6-9]|2[0-9]|3[0-1])\.")
| summarize Connections = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
by DeviceName, RemoteIP, RemoteUrl
| order by FirstSeen asc;
For Sentinel environments ingesting PaperCut server or perimeter logs via Syslog/CEF, hunt for request anomalies:
// Hunt 3: Requests to PaperCut admin/application paths in Syslog/CEF-ingested web logs
CommonSecurityLog
| where TimeGenerated > ago(14d)
| where DestinationPort in (9191, 9192)
| where RequestURL has_any ("/app", "/admin", "/api", "/rpc")
| summarize Hits = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
by SourceIP, RequestURL, RequestMethod, DeviceProduct
| order by FirstSeen asc;
Velociraptor VQL
Use this hunt across your PaperCut application servers to identify post-exploitation process execution and unexpected outbound connections from the service context.
-- Hunt: PaperCut application server post-exploitation artifacts
-- Identifies suspicious child processes of pc-app and unexpected network connections
SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ 'pc-app|papercut'
OR (Name =~ 'cmd|powershell|pwsh|mshta|rundll32|certutil|curl|wget|bash|sh$'
AND Username =~ 'SYSTEM|root|papercut|pc-app')
-- Hunt: Network connections held by the PaperCut service process
SELECT Pid, Name, Pid as ProcessPid, Status, Family,
LocalAddress.IP AS LocalIP, LocalAddress.Port AS LocalPort,
RemoteAddress.IP AS RemoteIP, RemoteAddress.Port AS RemotePort
FROM netstat()
WHERE Name =~ 'pc-app|java'
AND Status =~ 'ESTAB|LISTEN'
ORDER BY LocalPort
Remediation and Verification Script
Run this on Windows PaperCut application servers to inventory version, check exposure, capture volatile evidence before patching, and restrict the admin interface while patching is scheduled. Snapshot and preserve logs first — if you were already compromised, patching destroys evidence.
# PaperCut NG/MF CVE-2026-81578 / CVE-2026-82078 Response Script
# Run elevated on the PaperCut Application Server
# Step 1: Identify installed version
$pcPath = "C:\Program Files\PaperCut NG"
if (Test-Path $pcPath) {
Get-Item "$pcPath\server\bin\pc-app.exe" -ErrorAction SilentlyContinue |
Select-Object FullName, @{N='Version';E={$_.VersionInfo.ProductVersion}}
}
$pcMF = "C:\Program Files\PaperCut MF"
if (Test-Path $pcMF) {
Get-Item "$pcMF\server\bin\pc-app.exe" -ErrorAction SilentlyContinue |
Select-Object FullName, @{N='Version';E={$_.VersionInfo.ProductVersion}}
}
# Step 2: Preserve volatile evidence BEFORE patching (IR requirement)
$evidence = "C:\IR-Evidence-$(Get-Date -Format yyyyMMdd-HHmm)"
New-Item -ItemType Directory -Path $evidence -Force | Out-Null
Get-Process pc-app -ErrorAction SilentlyContinue | Export-Clixml "$evidence\pcapp-process.xml"
Get-NetTCPConnection -OwningProcess (Get-Process pc-app -ErrorAction SilentlyContinue).Id -ErrorAction SilentlyContinue |
Export-Csv "$evidence\pcapp-connections.csv" -NoTypeInformation
Get-WinEvent -LogName Application -MaxEvents 5000 -ErrorAction SilentlyContinue |
Where-Object {$_.Message -match 'papercut'} | Export-Csv "$evidence\app-events.csv" -NoTypeInformation
# Preserve PaperCut server logs
Copy-Item "$pcPath\server\logs\*" "$evidence\server-logs\" -Recurse -Force -ErrorAction SilentlyContinue
Copy-Item "$pcPath\server\data\*" "$evidence\server-data\" -Recurse -Force -ErrorAction SilentlyContinue
# Step 3: Check for suspicious child processes of pc-app (active compromise indicator)
$pcPid = (Get-Process pc-app -ErrorAction SilentlyContinue).Id
if ($pcPid) {
Get-CimInstance Win32_Process | Where-Object {$_.ParentProcessId -eq $pcPid} |
Select-Object ProcessId, Name, CommandLine, CreationDate
}
# Step 4: Confirm listening exposure of the web interface
Get-NetTCPConnection -State Listen -LocalPort 9191,9192 -ErrorAction SilentlyContinue |
Select-Object LocalAddress, LocalPort, OwningProcess
# Step 5: INTERIM HARDENING - restrict PaperCut admin interface to a management subnet until patched
# Adjust -RemoteAddress to your approved management network
New-NetFirewallRule -DisplayName "PaperCut Admin - Mgmt Only (CVE-2026-81578)" `
-Direction Inbound -Protocol TCP -LocalPort 9192 `
-RemoteAddress "10.10.5.0/24" -Action Allow -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "PaperCut Admin - Block All Else (CVE-2026-81578)" `
-Direction Inbound -Protocol TCP -LocalPort 9192 -Action Block -ErrorAction SilentlyContinue
For Linux-hosted PaperCut application servers:
# Evidence preservation and exposure check BEFORE patching
mkdir -p /root/ir-evidence-$(date +%Y%m%d-%H%M)
cd /root/ir-evidence-*
ps auxf > process-tree.txt
ss -tlnp | grep -E '9191|9192' > listening-ports.txt
ls -la /proc/$(pgrep -f pc-app | head -1)/fd > open-files.txt 2>/dev/null
# Preserve PaperCut server and access logs (adjust install path as needed)
cp -r /opt/papercut/server/logs ./server-logs/ 2>/dev/null
cp -r /home/papercut/server/logs ./server-logs/ 2>/dev/null
# Look for suspicious children of the PaperCut java process
PCPID=$(pgrep -f 'pc-app' | head -1)
ps --ppid "$PCPID" -o pid,ppid,user,cmd
# Interim exposure control: restrict 9192 to management subnet via iptables
iptables -A INPUT -p tcp --dport 9192 -s 10.10.5.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 9192 -j DROP
Remediation
- Patch immediately. Apply the fixed PaperCut NG/MF builds referenced in the vendor's security advisory as soon as they are available. Track the vendor advisory directly: https://www.papercut.com/kb/Main/SecurityBulletins and the Rapid7 analysis at https://www.rapid7.com/blog/post/etr-papercut-ng-mf-critical-zero-day-exploited-in-the-wild. Subscribe to PaperCut's security mailing list if you have not already.
- Assume breach and hunt first. Because exploitation was confirmed before disclosure, patching alone is insufficient. Preserve logs and volatile evidence, run the process-behavior hunts above against at least the last 30 days of telemetry, and investigate any pc-app child process executions before you wipe them away with an upgrade.
- Remove internet exposure. PaperCut's web interface should never be reachable from the public internet. Audit with external attack surface scanning, place the application behind VPN/ZTNA for administrative access, and restrict port 9192 to dedicated management subnets via host and network firewall rules.
- Rotate credentials. If compromise is suspected or confirmed, rotate all credentials stored in or accessible from the PaperCut server — service accounts, LDAP bind accounts, database credentials, and any domain accounts whose sessions touched the host. The service commonly runs with directory integration credentials that are valuable for lateral movement.
- Review PaperCut configuration for persistence. Check for unauthorized admin accounts, modified print scripts, changed server options, and unfamiliar API keys after patching — admin-level access via this chain gives attackers configuration-level persistence that survives a straightforward patch.
- Monitor CISA KEV. Expect rapid KEV inclusion given confirmed exploitation. If added, federal civilian agencies face a BOD 22-01 remediation deadline; private-sector organizations should adopt the same deadline as their internal SLA.
- Forward PaperCut telemetry to your SIEM permanently. Ingest the PaperCut server and access logs, and ensure the application server host is covered by EDR with process lineage visible. The single biggest gap in every PaperCut incident I have responded to was that nobody was watching the print server.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.