Back to Intelligence

PaperCut NG/MF Zero-Day Under Active Exploitation: Detection, Hunt, and Emergency Patch Guide

SA
Security Arsenal Team
August 29, 2026
12 min read

PaperCut has issued an emergency alert to customers confirming that threat actors are actively exploiting a vulnerability affecting all versions of PaperCut NG and PaperCut MF print management software. The company has released emergency patches for its v25 and v26 release trains and stated it is "aware of confirmed customer incidents and is treating this matter with the highest priority."

If you've been in this space long enough, that language should make you sit up. This is not the first time PaperCut has been in the crosshairs — the platform has been targeted by ransomware affiliates and state-aligned actors in prior campaigns precisely because print management servers are (a) almost always internet-reachable or flat-network reachable, (b) running with high privileges, and (c) chronically under-monitored. When a vendor confirms active exploitation and ships an emergency out-of-band patch, the assumption must be that unpatched, exposed instances are already compromised or will be within days.

If you run PaperCut NG or MF anywhere in your environment — on-prem, in a DMZ, or in the cloud — treat this as an incident, not a patch ticket.


Technical Analysis

Affected Products and Versions

  • PaperCut NG — all versions (unpatched)
  • PaperCut MF — all versions (unpatched)
  • Platforms: Windows and Linux application servers, secondary print servers, and site servers

PaperCut has shipped emergency patches for the v25 and v26 release trains. Organizations running older release trains should plan for an upgrade path to a patched v25/v26 build, as backports have not been publicly confirmed at time of writing.

Exploitation Status

  • Confirmed active exploitation in the wild per the vendor
  • Confirmed customer incidents acknowledged by PaperCut
  • No CVE identifier has been publicly assigned in the initial disclosure (monitor the vendor advisory and CISA KEV for assignment and any federal remediation deadline)

Defender's View of the Attack Surface

While PaperCut has not yet released full technical details of the flaw, the historical exploitation patterns against this platform are instructive for where defenders should focus attention. PaperCut NG/MF attacks typically follow this chain:

  1. Initial access: Direct exploitation of the PaperCut Application Server web interface (default ports TCP 9191/9192 HTTP/HTTPS), often against internet-exposed instances or via internal pivot.
  2. Code execution: Successful exploitation historically yields code execution in the context of the PaperCut application service — frequently SYSTEM on Windows or the dedicated papercut service account on Linux. From there, attackers spawn cmd.exe, powershell.exe, certutil.exe, curl/wget, or LOLBins as child processes of the PaperCut server process (pc-app.exe on Windows, or the pc-app Java process on Linux).
  3. Persistence: Adversaries have deployed web shells into the PaperCut web directories (e.g., JSP files under the PaperCut server\data\web or server/custom/web trees on Windows, /opt/papercut/server/data/web/ on Linux), created local accounts, and added run keys/services.
  4. Post-exploitation: Credential theft, reconnaissance, and ransomware staging — in past campaigns, PaperCut compromises directly preceded Bl00dy/LockBit/Cl0p-style ransomware deployment and data extortion operations.

The takeaway: don't just patch — hunt. If your instance was exposed and unpatched, assume possible pre-patch compromise.


Detection & Response

The detections below target the behavioral patterns of PaperCut exploitation rather than specific exploit strings, so they remain useful even without a published PoC.

SIGMA Rules

YAML
---
title: PaperCut Application Server Spawning Suspicious Child Processes
id: 8f4a2c17-9b3d-4e5a-a1f2-6c8d9e0b1a34
status: experimental
description: Detects the PaperCut NG/MF application server process spawning command interpreters, downloaders, or script engines. This behavior is a hallmark of post-exploitation activity following compromise of the PaperCut web service and is almost never legitimate in production.
references:
  - https://thehackernews.com/2026/08/papercut-zero-day-exploited-in-attacks.html
  - https://attack.mitre.org/techniques/T1190/
  - https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/08/08
tags:
  - attack.initial_access
  - attack.t1190
  - attack.execution
  - attack.t1059
logsource:
  category: process_creation
  product: windows
detection:
  selection_parent:
    ParentImage|endswith:
      - '\pc-app.exe'
      - '\pc-print-provider.exe'
      - '\pc-monitor.exe'
  selection_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\pwsh.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
      - '\certutil.exe'
      - '\curl.exe'
      - '\bitsadmin.exe'
      - '\whoami.exe'
      - '\nltest.exe'
      - '\net.exe'
      - '\net1.exe'
  condition: selection_parent and selection_child
falsepositives:
  - Rare legitimate PaperCut administrative scripts invoked via the admin interface
  - PaperCut support-initiated troubleshooting (correlate with vendor support tickets)
level: critical
---
title: Web Shell or Suspicious File Written to PaperCut Web Directories
id: 3d7e9b45-2a1c-4f6e-b8d3-5a9c0e1f2b47
status: experimental
description: Detects creation of executable web content (JSP, JS, EXE, script files) inside PaperCut NG/MF web-serving directories, a known persistence mechanism used in prior PaperCut compromise campaigns.
references:
  - https://thehackernews.com/2026/08/papercut-zero-day-exploited-in-attacks.html
  - https://attack.mitre.org/techniques/T1505.003/
author: Security Arsenal
date: 2026/08/08
tags:
  - attack.persistence
  - attack.t1505.003
logsource:
  category: file_event
  product: windows
detection:
  selection_path:
    TargetFilename|contains:
      - '\papercut\server\data\web'
      - '\papercut ng\server\custom\web'
      - '\papercut mf\server\custom\web'
  selection_ext:
    TargetFilename|endswith:
      - '.jsp'
      - '.jspx'
      - '.exe'
      - '.dll'
      - '.ps1'
      - '.bat'
      - '.cmd'
      - '.vbs'
  condition: selection_path and selection_ext
falsepositives:
  - Legitimate custom branding/report content placed by PaperCut administrators (validate against change records)
  - PaperCut installer/patcher activity (filter by expected patch windows and signed process lineage)
level: high
---
title: PaperCut Service Making Suspicious Outbound Network Connections
id: 6b1c8d29-4e7a-4f3b-9c2d-8a5e0f1b3d56
status: experimental
description: Detects the PaperCut application server process initiating outbound connections to uncommon external destinations. Compromised print servers are used for C2, payload retrieval, and exfiltration; baseline-approved PaperCut cloud licensing traffic should be allowlisted.
references:
  - https://thehackernews.com/2026/08/papercut-zero-day-exploited-in-attacks.html
  - https://attack.mitre.org/techniques/T1071.001/
  - https://attack.mitre.org/techniques/T1105/
author: Security Arsenal
date: 2026/08/08
tags:
  - attack.command_and_control
  - attack.t1071.001
  - attack.t1105
logsource:
  category: network_connection
  product: windows
detection:
  selection_process:
    Image|endswith:
      - '\pc-app.exe'
  selection_remote:
    Initiated: 'true'
  filter_papercut_cloud:
    DestinationHostname|contains:
      - 'papercut.com'
      - 'papercut-mobility.com'
      - 'windows.net'
      - 'amazonaws.com'
  filter_local:
    DestinationIp|startswith:
      - '10.'
      - '172.16.'
      - '192.168.'
      - '127.'
  condition: selection_process and selection_remote and not 1 of filter_*
falsepositives:
  - PaperCut cloud services, licensing, and payment gateway callbacks (allowlist per your documented deployment)
  - Legitimate integrations (Google Workspace, Azure AD sync)
level: medium

KQL — Microsoft Sentinel / Defender for Endpoint

This query hunts for child-process execution from the PaperCut application server, suspicious web-directory writes, and unexpected outbound connections. Correlate all three on the same device within a 7-day window for high-confidence triage.

KQL — Microsoft Sentinel / Defender
// PaperCut NG/MF post-exploitation hunt — child processes, web shell writes, anomalous egress
let Lookback = 7d;
let PaperCutProcs = dynamic(["pc-app.exe", "pc-print-provider.exe", "pc-monitor.exe"]);
let SuspiciousChildren = dynamic(["cmd.exe", "powershell.exe", "pwsh.exe", "mshta.exe", "rundll32.exe", "regsvr32.exe", "certutil.exe", "curl.exe", "bitsadmin.exe", "whoami.exe", "net.exe", "nltest.exe"]);
let ChildExec =
    DeviceProcessEvents
    | where Timestamp > ago(Lookback)
    | where InitiatingProcessFileName in~ (PaperCutProcs)
    | where FileName in~ (SuspiciousChildren)
    | project ChildExecTime = Timestamp, DeviceName, DeviceId, ParentProc = InitiatingProcessFileName,
              ChildProc = FileName, ProcessCommandLine, InitiatingProcessCommandLine, AccountName, ReportId;
let WebShellWrites =
    DeviceFileEvents
    | where Timestamp > ago(Lookback)
    | where FolderPath has_any ("papercut\\server\\data\\web", "papercut ng\\server\\custom\\web", "papercut mf\\server\\custom\\web", "/opt/papercut/server/data/web", "/opt/papercut/server/custom/web")
    | where FileName endswith ".jsp" or FileName endswith ".jspx" or FileName endswith ".exe"
        or FileName endswith ".dll" or FileName endswith ".ps1" or FileName endswith ".sh"
    | project WebShellWriteTime = Timestamp, DeviceName, DeviceId, FolderPath, FileName, SHA256, InitiatingProcessFileName, InitiatingProcessCommandLine;
let AnomalousEgress =
    DeviceNetworkEvents
    | where Timestamp > ago(Lookback)
    | where InitiatingProcessFileName =~ "pc-app.exe"
    | where RemoteIPType == "Public"
    | where RemoteUrl !has "papercut.com"
    | project EgressTime = Timestamp, DeviceName, DeviceId, RemoteIP, RemotePort, RemoteUrl, InitiatingProcessCommandLine;
ChildExec
| join kind=leftouter (WebShellWrites) on DeviceId
| join kind=leftouter (AnomalousEgress) on DeviceId
| project DeviceName, ChildExecTime, ParentProc, ChildProc, ProcessCommandLine, WebShellWriteTime, FolderPath, FileName, EgressTime, RemoteIP, RemoteUrl, AccountName
| sort by ChildExecTime desc

Velociraptor VQL — Endpoint Hunt

Use this artifact across your fleet to identify PaperCut servers with suspicious child processes or unexpected files in web-serving directories — strong indicators of pre-patch compromise.

VQL — Velociraptor
-- Hunt: PaperCut NG/MF exploitation indicators
-- Identifies suspicious child processes of PaperCut services and anomalous files in PaperCut web directories

SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE Ppid IN (
    SELECT Pid
    FROM pslist()
    WHERE Name =~ '(?i)pc-app|pc-print-provider|pc-monitor'
)
AND Name =~ '(?i)(cmd|powershell|pwsh|mshta|rundll32|regsvr32|certutil|curl|wget|bitsadmin|whoami|nltest|net\.exe|bash|sh)'

UNION ALL

SELECT NULL AS Pid, NULL AS Ppid, FullPath AS Name, NULL AS Exe,
       'File in PaperCut web directory' AS CommandLine,
       NULL AS Username, Mtime AS CreateTime
FROM glob(globs=[
    'C:/Program Files/PaperCut*/server/data/web/**/*.jsp',
    'C:/Program Files/PaperCut*/server/custom/web/**/*.jsp',
    '/opt/papercut/server/data/web/**/*.jsp',
    '/opt/papercut/server/custom/web/**/*.jsp'
])
WHERE Mtime > time(
    string=cast(format='%v', timestamp=now() - 7*24*3600)
)

Remediation and Verification Script

Run this PowerShell script on Windows PaperCut application servers to inventory the installed version, check service state, flag recently modified web content, and review listening ports. Adapt for Linux with the Bash equivalent.

PowerShell
# PaperCut NG/MF — Emergency Patch Verification & Compromise Triage
# Run elevated on the PaperCut Application Server

Write-Host "=== PaperCut Emergency Patch Verification ===" -ForegroundColor Cyan

# 1. Identify installed PaperCut version
$pcPath = Get-ChildItem "C:\Program Files" -Directory -Filter "PaperCut*" -ErrorAction SilentlyContinue
if ($pcPath) {
    Write-Host "[+] PaperCut installation found: $($pcPath.FullName)"
    $verFile = Join-Path $pcPath.FullName "server\VERSION.txt"
    if (Test-Path $verFile) { Write-Host "[+] Version: $(Get-Content $verFile -Raw)" }
    else { Write-Host "[!] VERSION.txt not found — check Admin UI > About for build number" }
} else {
    Write-Host "[-] No PaperCut installation detected on this host"
    exit
}

# 2. Confirm target state: v25/v26 emergency-patched build
Write-Host "[i] REQUIRED: Emergency patch from PaperCut for v25/v26 release trains."
Write-Host "[i] Verify your build against the version in PaperCut's security advisory before continuing."

# 3. List PaperCut services and status
Get-Service -DisplayName "*PaperCut*" -ErrorAction SilentlyContinue |
    Select-Object Name, DisplayName, Status, StartType | Format-Table -AutoSize

# 4. Flag recently modified executable content in web directories (potential web shells)
Write-Host "`n=== Recently modified files in PaperCut web directories (last 14 days) ===" -ForegroundColor Yellow
Get-ChildItem -Path "$($pcPath.FullName)\server\data\web", "$($pcPath.FullName)\server\custom\web" `
    -Recurse -Include *.jsp,*.jspx,*.exe,*.dll,*.ps1,*.bat -ErrorAction SilentlyContinue |
    Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-14) } |
    Select-Object FullName, LastWriteTime, Length | Format-Table -AutoSize

# 5. Review listening ports — confirm 9191/9192 exposure scope
Write-Host "`n=== PaperCut listening ports ===" -ForegroundColor Yellow
Get-NetTCPConnection -State Listen -ErrorAction SilentlyContinue |
    Where-Object { $_.LocalPort -in 9191,9192,9193 } |
    Select-Object LocalAddress, LocalPort, OwningProcess | Format-Table -AutoSize

# 6. Check for child processes spawned by PaperCut services in last 7 days (requires Defender/EDR telemetry)
Write-Host "`n[i] TIP: Run the companion Sentinel/Defender KQL hunt to check for post-exploitation child processes."
Write-Host "[i] If ANY anomalies appear above: isolate the host from the network and initiate IR procedures."
Bash / Shell
#!/bin/bash
# PaperCut NG/MF — Linux Emergency Patch Verification & Compromise Triage

echo "=== PaperCut Installation Check ==="
if [ -d /opt/papercut ]; then
    cat /opt/papercut/server/VERSION.txt 2>/dev/null || echo "[!] Check Admin UI > About for build"
else
    echo "[-] No PaperCut installation found"; exit 0
fi

echo -e "\n=== Service Status ==="
systemctl status pc-app pc-event-monitor 2>/dev/null | head -20

echo -e "\n=== Recently modified web content (potential web shells) ==="
find /opt/papercut/server/data/web /opt/papercut/server/custom/web \
    -type f \( -name "*.jsp" -o -name "*.jspx" -o -name "*.sh" -o -name "*.py" \) \
    -mtime -14 -ls 2>/dev/null

echo -e "\n=== Listening ports 9191/9192/9193 ==="
ss -tlnp | grep -E '9191|9192|9193'

echo -e "\n=== Suspicious child processes of pc-app (live check) ==="
PCAPP_PID=$(pgrep -f "pc-app" | head -1)
if [ -n "$PCAPP_PID" ]; then
    ps --ppid "$PCAPP_PID" -o pid,ppid,comm,args 2>/dev/null
fi

echo -e "\n=== Outbound connections from PaperCut process ==="
ss -tnp | grep "pc-app" | grep -v ESTAB.*:9191 | grep -v ESTAB.*:9192

Remediation Steps — In Order of Priority

  1. Apply the emergency patch immediately. Upgrade PaperCut NG/MF to the emergency-patched build on the v25 or v26 release train per PaperCut's security advisory. If you are on an older release train, plan an expedited upgrade path — do not assume a backport is coming.
  2. Reduce exposure while patching. Restrict access to TCP 9191/9192 (admin and user web interfaces) to trusted management networks only. If the admin interface is internet-reachable, take it off the internet now — this should have never been exposed in the first place.
  3. Hunt before you trust. Patching does not remove a web shell planted last week. Run the Sigma/KQL/VQL detections above across every PaperCut server. Look specifically for:
    • Child processes spawned by pc-app.exe / the pc-app Java process
    • New or modified files in server/data/web and server/custom/web directories
    • Unexpected outbound connections from the PaperCut server
    • New local/domain accounts, services, or scheduled tasks on the host
  4. Assume-compromise for exposed instances. If your instance was internet-facing and unpatched during the exploitation window, engage IR: collect memory and disk images before patching, rotate credentials stored on or accessible from the print server (service accounts, LDAP bind accounts, SMB/cross-server credentials), and review authentication logs for lateral movement.
  5. Segment print infrastructure. Print management servers sit on a bridge between endpoints and identity infrastructure. Place them in a dedicated VLAN, block outbound internet egress except allowlisted PaperCut cloud services, and deny SMB/RDP from the print server to the rest of the network.
  6. Monitor for CVE assignment and CISA KEV listing. PaperCut advisories and CISA KEV typically follow within days of confirmed exploitation. Subscribe to PaperCut's security advisory feed and apply any federal/agency remediation deadlines as soon as published.
  7. Long-term: add PaperCut (and all print management software) to your attack surface management and external exposure scans. Anything that listens on a management port, runs with SYSTEM, and updates infrequently deserves the same patching SLA as your VPN concentrator.

Vendor References


Bottom Line

Print management software has repeatedly proven to be a soft, high-privilege entry point into enterprise networks, and PaperCut deployments are being hit right now. The playbook is short: patch to the emergency v25/v26 build, pull the admin interface off the internet, and hunt hard for signs of pre-patch compromise — especially web shells and child-process execution from the PaperCut service. If your hunt turns up anything, you're not patching anymore; you're doing incident response.

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.