Introduction
The U.S. Cybersecurity and Infrastructure Security Agency (CISA) has added CVE-2026-81578 — a pre-authentication, unauthenticated remote code execution vulnerability in PaperCut NG and PaperCut MF — to its Known Exploited Vulnerabilities (KEV) catalog. This is not a theoretical exercise. Inclusion in the KEV means CISA has reliable evidence of active exploitation in the wild, and it triggers mandatory remediation timelines for Federal Civilian Executive Branch (FCEB) agencies under Binding Operational Directive 22-01. Every private-sector organization running PaperCut should treat this with the same urgency.
PaperCut is one of the most widely deployed print management platforms on the planet — it runs in schools, universities, hospitals, law firms, government offices, and enterprises of every size. That footprint is precisely why threat actors target it. When PaperCut was hit with mass exploitation in 2023, we watched ransomware affiliates and state-aligned actors convert unpatched print servers into initial access brokers' inventory within days. The defender's lesson from that campaign applies directly here: a PaperCut server is typically domain-joined, often runs with elevated privileges, and is frequently forgotten by both IT and security teams. It is a near-perfect beachhead.
If you run PaperCut NG or MF anywhere in your environment — especially with the Application Server reachable from user VLANs, guest networks, or worse, the internet — treat this as an incident-response priority, not a patch-Tuesday line item.
Technical Analysis
Affected Products
- PaperCut NG — Application Server component
- PaperCut MF — Application Server component
- Deployed on Windows, Linux, and macOS server platforms; exploitation typically targets the central Application Server rather than secondary Site Servers or print clients
Confirm the exact affected and fixed version ranges against the official PaperCut security bulletin before scoping your patch window — do not assume your build is unaffected because it is "recent."
Vulnerability: CVE-2026-81578
CVE-2026-81578 is a pre-authentication remote code execution flaw. The critical characteristics from a defender's standpoint:
- No credentials required. An attacker with network reachability to the PaperCut Application Server web interface (default ports TCP 9191 HTTP / 9192 HTTPS) can trigger code execution without any valid session or account.
- Execution context. Code executes in the context of the PaperCut Application Server service. On Windows this service commonly runs as
SYSTEM; on Linux it typically runs under a dedicatedpapercutaccount, but the host is usually a server-tier asset with broad internal reachability. - Post-exploitation behavior. Consistent with historical PaperCut exploitation tradecraft, post-exploitation typically manifests as the PaperCut server process (
pc-app.exeon Windows, thepc-appJava process on Linux) spawning child processes: command shells, script interpreters, downloaders, or tooling for reconnaissance and lateral movement.
Exploitation Status
- Confirmed active exploitation — this is the defining criterion for CISA KEV inclusion.
- CISA KEV: Listed. FCEB agencies are bound by BOD 22-01 to remediate by the due date published in the KEV entry (CISA generally sets a roughly three-week window for newly added CVEs — check the catalog entry for the exact date).
- Threat landscape: Print management platforms are attractive to both opportunistic ransomware operators (initial access) and more disciplined actors looking for quiet persistence on an overlooked server. Expect scanning and exploitation attempts against internet-exposed instances to surge now that the KEV listing is public.
The Defender's Mental Model
Attack chain, in practice:
- Attacker identifies a reachable PaperCut Application Server (Shodan/Censys exposure, internal pivot, or compromised user workstation).
- Pre-auth exploit against the web interface yields code execution inside the PaperCut server process context.
- The server process spawns a shell or script interpreter.
- Attacker stages tooling: reconnaissance (
whoami,net,nltest), credential access, payload download, persistence, and lateral movement.
Every step after #2 is detectable if you are watching the PaperCut process lineage — and almost nobody is.
Detection & Response
The highest-fidelity detection for this class of attack is child process lineage from the PaperCut Application Server process. Legitimate PaperCut operation virtually never spawns interactive shells, PowerShell, or system reconnaissance utilities. This was the single most reliable detection during the 2023 PaperCut exploitation wave, and it holds for CVE-2026-81578.
Sigma Rules
---
title: PaperCut Application Server Spawning Shell or Script Interpreter
id: 3b7f2a91-6c4d-4e8a-b1f5-9d2c7e4a6f08
status: experimental
description: Detects the PaperCut Application Server process (pc-app.exe) spawning command shells, PowerShell, or script interpreters — consistent with post-exploitation of CVE-2026-81578 pre-auth RCE.
references:
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.execution
- attack.t1059
- attack.initial_access
- attack.t1190
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\pc-app.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
- '\curl.exe'
- '\wget.exe'
condition: selection_parent and selection_child
falsepositives:
- Rare; legitimate PaperCut hotfolder scripts or custom print scripting may invoke cmd.exe — tune per environment after baseline review
level: high
---
title: PaperCut Server Process Executing Reconnaissance Commands
id: 8e1c4d72-2a5b-49f7-c3d6-1b8e5a2f9c47
status: experimental
description: Detects reconnaissance and discovery commands executed under the PaperCut Application Server process, a common post-exploitation behavior following RCE via CVE-2026-81578.
references:
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- https://attack.mitre.org/techniques/T1033/
- https://attack.mitre.org/techniques/T1018/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.discovery
- attack.t1033
- attack.t1018
- attack.t1069
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\pc-app.exe'
selection_cmd:
CommandLine|contains:
- 'whoami'
- 'ipconfig'
- 'net user'
- 'net group'
- 'net localgroup'
- 'nltest'
- 'quser'
- 'systeminfo'
- 'arp -a'
- 'netstat'
- 'tasklist'
condition: selection_parent and selection_cmd
falsepositives:
- Highly unlikely under the PaperCut server process; investigate any hit
level: critical
---
title: Linux PaperCut Server Spawning Shell
id: 5f9a3e18-7b2c-4d91-a6e4-8c1f3b7d2e59
status: experimental
description: Detects the PaperCut server process on Linux spawning interactive shells or download utilities, consistent with post-exploitation of CVE-2026-81578.
references:
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- https://attack.mitre.org/techniques/T1059.004/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.execution
- attack.t1059.004
- attack.initial_access
- attack.t1190
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'
condition: selection_parent and selection_child
falsepositives:
- Custom PaperCut print scripting integrations may invoke shells — baseline and tune
level: high
KQL (Microsoft Sentinel / Defender)
// Hunt: PaperCut Application Server spawning suspicious child processes (CVE-2026-81578 post-exploitation)
// Works against Defender for Endpoint device data; for EDR-less servers, ingest Sysmon via AMA and swap to the Event table.
let suspiciousChildren = dynamic(["cmd.exe","powershell.exe","pwsh.exe","mshta.exe","rundll32.exe","certutil.exe","bitsadmin.exe","wscript.exe","cscript.exe","curl.exe","wget.exe","regsvr32.exe"]);
DeviceProcessEvents
| where TimeGenerated > ago(14d)
| where InitiatingProcessFileName =~ "pc-app.exe"
or InitiatingProcessCommandLine has_any ("pc-app", "papercut")
| where FileName in~ (suspiciousChildren)
or ProcessCommandLine has_any ("whoami","net user","nltest","certutil","bitsadmin","iex ","downloadstring","invoke-webrequest","enc ","-enc ","frombase64")
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, AccountName, RemoteIP, ReportId
| sort by TimeGenerated desc
// Hunt: inbound connections to PaperCut web ports from unusual sources (reconnaissance/exploit delivery)
// Enrich with your asset inventory — flag sources that are not print clients or admin workstations.
DeviceNetworkEvents
| where TimeGenerated > ago(14d)
| where LocalPort in (9191, 9192)
| where ActionType == "InboundConnectionAccepted"
| summarize ConnectionCount = count(), UniqueSources = dcount(RemoteIP), SourceIPs = make_set(RemoteIP, 25)
by DeviceName, LocalPort, bin(TimeGenerated, 1h)
| where UniqueSources > 50 or ConnectionCount > 500 // spike in distinct sources = scanning/exploitation pattern
| sort by UniqueSources desc
Velociraptor VQL
-- Hunt: PaperCut server process lineage and network exposure
-- Deploy as a hunt across servers running PaperCut NG/MF Application Server.
-- Part 1: Live process tree — find pc-app and any child processes
SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime,
get_member(field='Exe') AS Executable
FROM pslist()
WHERE Name =~ '(?i)pc-app|papercut'
OR CommandLine =~ '(?i)pc-app'
-- Part 2: Suspicious children of PaperCut (correlate Ppid from Part 1, or filter directly)
SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)cmd|powershell|pwsh|mshta|rundll32|certutil|bitsadmin|wscript|cscript|bash|sh$|curl|wget'
AND Ppid IN (
SELECT Pid FROM pslist() WHERE Name =~ '(?i)pc-app'
)
-- Part 3: Network listeners on PaperCut ports — confirm exposure
SELECT Pid, Name, Path, LocalAddress, LocalPort, RemoteAddress, RemotePort, Status
FROM netstat()
WHERE LocalPort IN (9191, 9192)
Remediation & Verification Script
Run this on Windows PaperCut Application Servers to verify installation state, identify the deployed version, check network exposure, and flag suspicious process lineage for triage. It does not patch — patching must be done via the vendor installer — but it gives you an immediate risk picture.
# CVE-2026-81578 PaperCut NG/MF exposure and compromise-indicator assessment
# Run elevated on each PaperCut Application Server.
Write-Host "=== PaperCut Installation Discovery ===" -ForegroundColor Cyan
$installPaths = @("C:\Program Files\PaperCut NG", "C:\Program Files\PaperCut MF")
foreach ($p in $installPaths) {
if (Test-Path $p) {
Write-Host "[+] Found installation: $p"
$verFile = Get-ChildItem -Path $p -Recurse -Filter "version.txt" -ErrorAction SilentlyContinue | Select-Object -First 1
if ($verFile) { Get-Content $verFile.FullName }
Get-ChildItem "$p\server\bin\pc-app.exe" -ErrorAction SilentlyContinue |
Select-Object FullName, @{N='FileVersion';E={$_.VersionInfo.FileVersion}}
}
}
Write-Host "`n=== Service State ===" -ForegroundColor Cyan
Get-Service | Where-Object { $_.DisplayName -match "PaperCut" } |
Select-Object Name, DisplayName, Status, StartType
Write-Host "`n=== Network Exposure (9191/9192) ===" -ForegroundColor Cyan
Get-NetTCPConnection -State Listen -ErrorAction SilentlyContinue |
Where-Object { $_.LocalPort -in 9191,9192 } |
Select-Object LocalAddress, LocalPort, OwningProcess
# WARNING: 0.0.0.0 means reachable from any interface — restrict via host firewall.
Write-Host "`n=== Host Firewall Check ===" -ForegroundColor Cyan
$rules = Get-NetFirewallRule -Direction Inbound -Action Allow -ErrorAction SilentlyContinue |
Where-Object { $_.DisplayName -match "PaperCut|9191|9192" }
if (-not $rules) { Write-Host "[!] No explicit inbound firewall rules scoping PaperCut ports found." }
Write-Host "`n=== Suspicious Child Processes of pc-app.exe (last 24h) ===" -ForegroundColor Cyan
$pcApp = Get-CimInstance Win32_Process -Filter "Name='pc-app.exe'"
foreach $proc in $pcApp {
Get-CimInstance Win32_Process -Filter "ParentProcessId=$($proc.ProcessId)" |
Where-Object { $_.Name -match "cmd|powershell|pwsh|mshta|rundll32|certutil|bitsadmin|wscript|cscript|curl|wget" } |
Select-Object CreationDate, ProcessId, Name, CommandLine
}
Write-Host "`n=== Outbound Connections from PaperCut Server ===" -ForegroundColor Cyan
if ($pcApp) {
foreach ($proc in $pcApp) {
Get-NetTCPConnection -OwningProcess $proc.ProcessId -State Established -ErrorAction SilentlyContinue |
Where-Object { $_.RemotePort -notin 9191,9192 -and $_.RemoteAddress -notmatch "^(127\.|::1)" } |
Select-Object RemoteAddress, RemotePort, State
}
}
Write-Host "`nAssessment complete. Escalate any suspicious child processes or unknown outbound connections to IR immediately." -ForegroundColor Yellow
Remediation
- Identify every PaperCut instance now. Query your CMDB, EDR software inventory, and network scans for ports 9191/9192. Do not trust documentation — print servers get stood up by departments and forgotten. Include NG and MF, primary and site servers, and any instances in OT/clinical/academic enclaves.
- Apply the vendor fix. PaperCut has released patched builds addressing CVE-2026-81578 — download the current fixed release from the official PaperCut security advisory and upgrade every Application Server. Reference: PaperCut security bulletins (https://www.papercut.com/kb/Main/SecurityAdvisories) and the CVE entry in the CISA KEV catalog (https://www.cisa.gov/known-exploited-vulnerabilities-catalog). Verify the exact fixed version against the vendor bulletin before scheduling.
- Respect the KEV clock. FCEB agencies: remediate by the due date in the KEV entry per BOD 22-01. Everyone else: treat that same date as your internal SLA. KEV-listed CVEs are exploited at scale precisely because the window between listing and mass exploitation is short.
- Remove internet exposure immediately. No PaperCut Application Server should ever be reachable from the internet. Audit perimeter firewall rules, NAT mappings, and cloud security groups for 9191/9192. If you find an exposed instance, assume compromise and initiate IR before patching — patching a compromised host does not evict the attacker.
- Segment and restrict. Limit inbound access to the Application Server to print clients and designated admin subnets. On the host firewall, scope 9191/9192 to known networks. The web admin interface should be reachable only from a management VLAN.
- Hunt before you patch. Because exploitation predates the KEV listing, patch alone is insufficient. Run the process-lineage hunts above across every PaperCut server, review PaperCut application logs for unauthenticated request anomalies, and check for new local accounts, unusual services, scheduled tasks, or Run-key persistence created since the vulnerability disclosure.
- Enforce least privilege on the service account. Where operationally possible, run the PaperCut service under a dedicated low-privilege account rather than SYSTEM, and ensure the server itself has no more network reach than printing requires (no outbound internet except vendor update/licensing endpoints via proxy).
- Add print infrastructure to your attack surface management program. This is the second time in three years PaperCut has been a mass-exploitation vector. Print servers, like backup consoles and remote management tools, belong in your high-value-asset tier for monitoring and patch prioritization.
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.