Print servers have quietly become one of the most reliably exploitable footholds in enterprise environments, and the latest data confirms what many of us in incident response have been seeing firsthand: attackers are actively probing PaperCut print management servers, and nearly half of the tracked installations — 47% — are still running unpatched versions vulnerable to unauthenticated remote code execution.
PaperCut's print management software runs in schools, hospitals, government offices, and enterprises worldwide. The vendor confirmed on August 27 that a pre-authentication remote code execution flaw is being actively exploited against real customers — this is not theoretical scanner noise. Researchers at Huntress have documented evidence of genuine exploitation activity targeting exposed servers, and the fact that almost half of observed installations remain unpatched months after fixes became available tells us this campaign has a long runway ahead of it.
If your organization runs PaperCut — and if you manage printers at any scale, there's a good chance you do — treat this as an urgent remediation priority. Unauthenticated RCE on an internet-reachable or flat-network print server is a direct path to domain-level compromise. Print servers typically run with elevated privileges, hold print job data that can contain sensitive documents, and are frequently excluded from standard EDR coverage because 'it's just the print server.'
Technical Analysis
Affected Products and Exposure
PaperCut's print management platform (PaperCut MF and PaperCut NG) is deployed across education, healthcare, legal, and corporate environments. The application consists of a central application server — often Windows-based, though Linux deployments are common — that communicates with print queues, user directories (Active Directory / LDAP), and end-user clients.
The vulnerable component sits in the application server's web-facing logic, allowing an attacker to execute code without any prior authentication. That last point is what elevates this from a routine patching exercise to an emergency: no credentials, no user interaction, no insider access required. An attacker with network reachability to the PaperCut web interface (typically TCP 9191/9192 for HTTP/HTTPS) can achieve code execution in the context of the PaperCut service account — which is frequently a local administrator or domain-joined service account with far more privilege than it should have.
Why Print Servers Are High-Value Targets
From an attacker's perspective, PaperCut servers check every box:
- Elevated privileges by default. The PaperCut service commonly runs as SYSTEM or a privileged service account to manage print spoolers and queues.
- Directory integration. PaperCut syncs with AD/LDAP, meaning configuration databases often contain bind credentials and user metadata useful for lateral movement.
- Weak monitoring coverage. Print infrastructure rarely gets the same EDR, Sysmon, or log-forwarding attention as domain controllers or user endpoints.
- Sensitive data at rest. Print job logs and cached documents can contain HR records, patient information, legal filings, and student data — a compliance problem (HIPAA, PCI-DSS, FERPA) on top of the security problem.
- Patch lag. The 47% unpatched figure reflects the reality that print servers are operationally 'fragile' in administrators' minds — updates get deferred because nobody wants to break printing during the school year or a hospital shift.
Exploitation Status
This is confirmed active exploitation, not proof-of-concept chatter. PaperCut itself acknowledged real customers being attacked, and Huntress has published evidence from managed environments showing probing and exploitation attempts. Historical precedent with PaperCut vulnerabilities shows that exploitation scales rapidly once initial access brokers and ransomware affiliates adopt the flaw — previous PaperCut intrusions have led directly to ransomware deployment and data extortion. Assume any unpatched, network-reachable PaperCut server is either already compromised or will be probed within days.
What Compromise Looks Like
Post-exploitation behavior on PaperCut servers follows a predictable pattern: the PaperCut application server process (pc-app.exe on Windows, or the Java-based server process on Linux) spawns child processes it has no business spawning — cmd.exe, powershell.exe, wscript.exe, or on Linux, /bin/sh and /bin/bash invoking curl/wget to pull second-stage payloads. From there, attackers establish persistence, enumerate the domain, and stage tooling. This process-parent anomaly is the single highest-fidelity detection available to defenders, and it forms the core of the detection content below.
Detection & Response
Sigma Rules
The following rules target the most reliable observable: the PaperCut application server process spawning command interpreters or scripting engines, plus web server access patterns consistent with exploitation probing.
---
title: PaperCut Application Server Spawning Command Interpreter
id: 3f8a2b91-7c4e-4d1a-9b62-8e5f0a1c2d34
status: experimental
description: Detects the PaperCut application server process spawning cmd, PowerShell, or scripting engines — a strong indicator of post-exploitation activity following unauthenticated RCE against PaperCut MF/NG.
references:
- https://securityaffairs.com/198107/uncategorized/hackers-are-probing-papercut-servers-and-47-still-have-no-patch.html
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/01/15
tags:
- attack.execution
- attack.t1059
- attack.t1190
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\pc-app.exe'
- '\papercut.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
- '\wmic.exe'
condition: selection_parent and selection_child
falsepositives:
- Rare — PaperCut may invoke scripts for custom print job workflows, but direct spawning of command interpreters by the application server is highly anomalous in most environments
level: high
---
title: PaperCut Server Outbound Payload Download
id: 9c1d4e72-3a8b-4f56-b2c7-6d9e1f0a3b45
status: experimental
description: Detects the PaperCut application server process making outbound network connections to uncommon external hosts, consistent with second-stage payload retrieval after exploitation.
references:
- https://securityaffairs.com/198107/uncategorized/hackers-are-probing-papercut-servers-and-47-still-have-no-patch.html
- https://attack.mitre.org/techniques/T1105/
author: Security Arsenal
date: 2026/01/15
tags:
- attack.command_and_control
- attack.t1105
logsource:
category: network_connection
product: windows
detection:
selection:
Image|endswith:
- '\pc-app.exe'
Initiated: 'true'
filter_updates:
DestinationHostname|contains:
- 'papercut.com'
- 'papercut-ng.com'
- 'windowsupdate.com'
- 'microsoft.com'
filter_internal:
DestinationIp|startswith:
- '10.'
- '172.16.'
- '172.17.'
- '172.18.'
- '172.19.'
- '172.2'
- '192.168.'
condition: selection and not 1 of filter_*
falsepositives:
- License validation and telemetry to PaperCut domains (filtered above)
- Cloud print provider integrations — baseline your environment's legitimate destinations before enabling at high severity
level: medium
---
title: PaperCut Linux Server Shell Spawning
id: 5e7b9a14-2f6c-4d38-a1b9-4c8e2d6f0a57
status: experimental
description: Detects the PaperCut server process on Linux spawning shells or download utilities, indicative of post-exploitation command execution.
references:
- https://securityaffairs.com/198107/uncategorized/hackers-are-probing-papercut-servers-and-47-still-have-no-patch.html
- https://attack.mitre.org/techniques/T1059.004/
author: Security Arsenal
date: 2026/01/15
tags:
- 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'
- '/curl'
- '/wget'
- '/python'
- '/python3'
- '/perl'
- '/nc'
- '/ncat'
condition: selection_parent and selection_child
falsepositives:
- Administrative maintenance performed directly on the PaperCut host
- Custom PaperCut integration scripts — validate against change records
level: high
KQL — Microsoft Sentinel / Defender
This query hunts for the PaperCut application server spawning suspicious child processes across your Defender-onboarded estate, and a second query surfaces PaperCut servers making unexpected outbound connections. Run both on a 7-day lookback immediately, then operationalize as analytics rules.
// Hunt 1: PaperCut server spawning command interpreters or LOLBins
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName =~ "pc-app.exe"
or InitiatingProcessFolderPath has "PaperCut"
| where FileName in~ ("cmd.exe", "powershell.exe", "pwsh.exe", "wscript.exe",
"cscript.exe", "mshta.exe", "rundll32.exe", "certutil.exe", "bitsadmin.exe",
"wmic.exe", "curl.exe")
| project TimeGenerated, DeviceName, InitiatingProcessCommandLine, FileName,
ProcessCommandLine, AccountName, InitiatingProcessAccountName, SHA256
| order by TimeGenerated desc
;
// Hunt 2: PaperCut servers with outbound connections to non-standard destinations
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName =~ "pc-app.exe"
or InitiatingProcessFolderPath has "PaperCut"
| where RemoteIPType == "Public"
| where not(RemoteUrl has_any ("papercut.com", "papercut-ng.com", "microsoft.com"))
| summarize ConnectionCount = count(), RemoteIPs = make_set(RemoteIP, 20),
RemoteUrls = make_set(RemoteUrl, 20), Ports = make_set(RemotePort, 10)
by DeviceName, InitiatingProcessFileName
| order by ConnectionCount desc
;
// Hunt 3: Identify all devices running PaperCut to scope patching (via process observation)
DeviceProcessEvents
| where TimeGenerated > ago(14d)
| where FolderPath has "PaperCut" or FileName =~ "pc-app.exe"
| summarize LastSeen = max(TimeGenerated), Versions = make_set(ProcessVersionInfoProductVersion, 5)
by DeviceName
| order by LastSeen desc
Velociraptor VQL
Use this artifact to sweep your PaperCut servers for suspicious child processes, recently dropped executables in PaperCut directories, and unexpected outbound connections — useful for triaging a server you suspect may already be compromised.
-- PaperCut compromise triage: child processes, dropped files, and network connections
-- Hunt 1: Suspicious child processes spawned by PaperCut application server
SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ '(?i)(powershell|cmd\.exe|wscript|cscript|mshta|certutil|bitsadmin|curl|wget)'
AND (
CommandLine =~ '(?i)papercut'
OR Exe =~ '(?i)papercut'
)
;
-- Hunt 2: Recently created executables/scripts in PaperCut directories (last 30 days)
SELECT FullPath, Size, Mtime, Ctime
FROM glob(globs='C:\\Program Files\\PaperCut MF\\**')
WHERE NOT IsDir
AND Mtime > (now() - 2592000)
AND FullPath =~ '(?i)\.(exe|dll|bat|ps1|vbs|js|jsp|war)$'
ORDER BY Mtime DESC
;
-- Hunt 3: Outbound connections from PaperCut processes
SELECT Pid, Name, Status, LocalAddr, LocalPort, RemoteAddr, RemotePort
FROM netstat()
WHERE Name =~ '(?i)(pc-app|java|papercut)'
AND Status =~ 'ESTABLISHED'
AND NOT RemoteAddr =~ '^(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.|127\.)'
Remediation and Verification Script
Run this PowerShell script on Windows PaperCut application servers to inventory the installed version, check service privileges, and verify exposure. Pair it with your patch deployment tooling of choice.
# PaperCut Server Assessment and Hardening Script
# Run as Administrator on PaperCut MF/NG application servers
# --- Step 1: Identify PaperCut installation and version ---
$pcPaths = @("C:\Program Files\PaperCut MF", "C:\Program Files\PaperCut NG")
foreach ($path in $pcPaths) {
if (Test-Path $path) {
Write-Host "[+] PaperCut installation found: $path" -ForegroundColor Green
$exe = Get-Item "$path\server\bin\pc-app.exe" -ErrorAction SilentlyContinue
if ($exe) {
Write-Host " Version: $($exe.VersionInfo.ProductVersion)"
Write-Host " ACTION REQUIRED: Compare against vendor-fixed version in the PaperCut advisory."
}
}
}
# --- Step 2: Check PaperCut service account privileges ---
Get-Service | Where-Object { $_.DisplayName -match "PaperCut" } | ForEach-Object {
$svc = Get-WmiObject Win32_Service -Filter "Name='$($_.Name)'"
Write-Host "[+] Service: $($_.DisplayName) | State: $($_.State) | RunAs: $($svc.StartName)"
if ($svc.StartName -match "LocalSystem|Administrator") {
Write-Host " WARNING: Service runs with elevated privileges. Migrate to a least-privilege service account." -ForegroundColor Red
}
}
# --- Step 3: Check for suspicious child processes of pc-app.exe (live triage) ---
$pcProc = Get-Process -Name "pc-app" -ErrorAction SilentlyContinue
if ($pcProc) {
Write-Host "[+] pc-app.exe running (PID: $($pcProc.Id)). Check process tree in your EDR for anomalous children." -ForegroundColor Yellow
}
# --- Step 4: Verify internet exposure (PaperCut web ports should NOT be internet-facing) ---
$listeners = Get-NetTCPConnection -State Listen -ErrorAction SilentlyContinue |
Where-Object { $_.LocalPort -in 9191, 9192, 9193 } |
Select-Object LocalAddress, LocalPort -Unique
if ($listeners) {
Write-Host "[+] PaperCut web listeners detected:" -ForegroundColor Yellow
$listeners | Format-Table -AutoSize
Write-Host " Verify these are bound to internal interfaces and blocked at the perimeter firewall." -ForegroundColor Yellow
}
# --- Step 5: Enable Windows Firewall restriction to internal subnets only (example) ---
# Adjust -RemoteAddress to your internal ranges before running
# New-NetFirewallRule -DisplayName "PaperCut Web - Internal Only" -Direction Inbound `
# -LocalPort 9191,9192 -Protocol TCP -RemoteAddress 10.0.0.0/8,192.168.0.0/16 -Action Allow
Write-Host "`n[+] Assessment complete. Patch first, then hunt — assume any long-unpatched server has been probed." -ForegroundColor Cyan
Remediation
Prioritized actions, in order:
-
Patch immediately. Apply the latest PaperCut MF/NG release per the vendor's security advisories at papercut.com/kb/Main/SecurityBulletins. Do not rely on version numbers from memory — verify against the advisory for this specific flaw and confirm the applied build matches the fixed release. The 47% unpatched figure means your peers are lagging; don't be in that cohort.
-
Remove internet exposure. PaperCut web interfaces (TCP 9191/9192/9193) should never be directly internet-reachable. Audit your perimeter and cloud security groups today. If remote access is a business requirement, put the interface behind a VPN or a properly authenticated reverse proxy with MFA.
-
Hunt before you assume you're clean. If your server was unpatched and network-reachable for any period since exploitation began, run the detection content above across at least a 30-day lookback. Look for
pc-app.exespawning shells, unexpected outbound connections, new local accounts, web shells or dropped JSP/WAR files in PaperCut directories, and unusual service installations. -
Reduce service privileges. Migrate the PaperCut service away from SYSTEM/high-privilege accounts where operationally feasible. Constrain AD/LDAP bind accounts to read-only with the minimum required scope.
-
Segment print infrastructure. Place PaperCut servers in a restricted VLAN. Limit inbound access to print clients and admin workstations; limit outbound to vendor update endpoints and required directory services only. A compromised print server should not be able to reach your domain controllers directly.
-
Close the monitoring gap. Onboard PaperCut servers into EDR, forward application and web access logs to your SIEM, and deploy the Sigma analytics above. Print infrastructure can no longer be a blind spot — attackers are explicitly counting on it being one.
-
Address the patch-lag root cause. A 47% unpatched rate is a process failure, not just a technical one. Establish an expedited patch SLA for internet-adjacent, pre-authentication RCE-class vulnerabilities — measured in days, not maintenance windows. If operational uptime concerns are blocking print server patches, build a tested rollback plan so patching is no longer scary.
Conclusion
The PaperCut situation is a case study in why 'boring' infrastructure is dangerous infrastructure. Print servers hold privilege, hold sensitive data, integrate with your directory, and get the least security attention in the average environment. Attackers understand this asymmetry and are actively exploiting it right now against real organizations. Patch your PaperCut deployment this week, verify it isn't exposed to the internet, hunt for signs of prior compromise, and fold print infrastructure into your standard monitoring and vulnerability management program. The 47% who haven't patched are betting they won't be next — that's not a strategy, it's an incident report waiting to be written.
Related Resources
Security Arsenal Healthcare Cybersecurity AlertMonitor Platform Book a SOC Assessment healthcare Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.