
Assessing PaperCut NG/MF Servers for Signs of Active Exploitation
The report making the rounds about PaperCut NG/MF is not just another critical vulnerability headline. What makes it worth attention is the combination of active exploitation and the claim that all versions are impacted. If that holds up, this is not a normal patch-cycle event. It is a triage event.
My read is straightforward: if your PaperCut servers were reachable from the internet, or from a broad internal network segment, treat them as a potential incident until the logs and host state say otherwise. A version number by itself will not settle the question.
What the report actually says about PaperCut NG/MF
Active exploitation is the key signal, not just another vulnerability headline
The source report says attackers are already using a PaperCut NG/MF issue in the wild. That changes the response. A theoretical bug gives you time to schedule maintenance. An exploited bug changes the order of operations: contain first, patch second, then hunt for persistence.
In practical terms, active exploitation usually means at least one of these is already possible:
- someone reached the server outside your normal admin workflow
- the service was used as a foothold into a wider Windows or Linux environment
- the attack may have happened before the server was patched, and the attacker may have come back later
That last point is the one people miss. It is easy to stop at “we upgraded” and move on. If the server was compromised first, the patch only removes one path in.
The source claims all versions are impacted, so version checks are not enough on their own
The report also says all versions are impacted. I would treat that as a warning flag, not as proof of compromise.
If “all versions” is accurate, then a version check tells you only whether you are likely vulnerable to the reported bug. It does not tell you whether the box was already touched. Even a fully patched PaperCut server can still be owned if the attacker got in before the patch, dropped persistence, or pivoted elsewhere.
So the better question is not “are we on the latest build?” It is:
- was the server reachable by untrusted clients?
- do the logs show suspicious requests or admin actions?
- did the host launch anything it normally should not launch?
- are there signs of persistence or lateral movement?
Why PaperCut servers are a high-value target
What these servers usually expose in a real environment
PaperCut NG/MF sits in an awkward but important place in many orgs. It is not just a printer box. It is often:
- a web application with an admin interface
- a service account with broad filesystem access
- a bridge to user authentication and directory services
- a machine that can talk to both user networks and infrastructure networks
That combination makes it a useful foothold. If an attacker gets code execution or even partial control, they may inherit:
- credentials cached in service configs
- access to local logs with usernames and hostnames
- network reachability into internal-only systems
- enough trust to blend into ordinary IT traffic
I do not buy the “it is just print software” framing. In a lot of environments, print infrastructure is one of the least isolated application servers on the network.
Why public exposure and weak segmentation make the risk worse
The risk rises quickly if the PaperCut service is:
- directly internet-facing
- exposed through a reverse proxy without strong auth controls
- reachable from a large internal subnet
- running with a service account that can admin the host or read sensitive directories
If that sounds familiar, the server is not just a print node. It is an edge service with internal trust. Edge services are where incidents start.
The best defense here is not one control. It is the combination of:
- exposure reduction
- least privilege
- log retention
- host integrity monitoring
Confirmed facts versus what still needs verification
Confirmed from the report
From the source report, the confirmed claims are narrow:
- PaperCut NG/MF is the product in question
- the issue is described as actively exploited
- the report says all versions are impacted
That is enough to justify immediate defensive action.
What I would not assume without the vendor advisory or logs
I would not assume the following without stronger evidence:
- that the exploit path is remote code execution
- that compromise happened on every exposed server
- that patching alone removes attacker access
- that the issue is limited to one operating system
- that the attacker used a specific payload or post-exploitation tool
Those details need either a vendor advisory, host logs, or direct forensic evidence. The report alone does not prove them.
Likely attack paths defenders should think about
Internet-facing admin or application endpoints
The first thing I would inspect is any PaperCut endpoint exposed beyond the trusted admin network. If attackers are scanning for this issue, they will usually start with whatever is easiest to reach:
- admin consoles
- login endpoints
- upload or import functions
- API routes or legacy web paths
- endpoints bridged through a reverse proxy or VPN
I would also look for access patterns that do not match normal print traffic. Print jobs are noisy but repetitive. Attack traffic is usually bursty, exploratory, and followed by a small number of unusual requests.
Authentication bypass, command execution, or web request abuse as the classes to test for
The report does not give enough technical detail to pin down the exact bug class, so I would stay at the level of likely defender checks:
- did the server accept a request without a normal login flow?
- did a web request trigger an unexpected server-side action?
- did a request path result in a child process or script launch?
- did the application accept parameters that should have been blocked by authorization?
Those are the classes that matter for triage. You do not need the exploit recipe to detect the aftermath.
Lateral movement after initial access
If the PaperCut server was compromised, assume the attacker tried to move laterally. I would check:
- domain credentials used from the host
- SMB, WinRM, SSH, or remote task execution from the server
- unusual connections to file shares, DCs, or backup systems
- new local admins or service-account abuse
PaperCut is usually not the end goal. It is the entry point.
What to check first on a live server
Build and patch status
Start with the basics, but do not stop there.
What to collect:
- exact PaperCut version and build
- install date
- last update time
- whether the server has been restarted since patching
On Windows, I would check the installed program inventory and service metadata. On Linux, I would verify the package or install tree and service unit.
Example triage commands:
## Linux: service, install path, and recent writes
systemctl status papercut*
ls -lah /opt | grep -i papercut
find /opt -path '*papercut*' -type f -mtime -14 | head
## Windows: service and install location
Get-Service | Where-Object {$_.Name -match 'PaperCut|pc'} | Format-Table -Auto
Get-CimInstance Win32_Service |
Where-Object {$_.Name -match 'PaperCut|pc'} |
Select-Object Name, State, StartName, PathName
If the version is old, that confirms exposure. If the version is current, it only narrows the timeline.
Authentication logs, admin actions, and unusual user creation
Next, look for:
- failed logins followed by a success from a new IP
- admin role changes
- new users or service accounts
- password reset events
- configuration changes outside your change window
If PaperCut’s own audit trail is intact, that is the first place I would read. If it is missing or truncated, treat that as suspicious in itself.
Process launches, scheduled tasks, and unexpected child processes
On the host, look for anything the PaperCut service launched that it normally should not launch.
On Windows:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688} -MaxEvents 50 |
Select-Object TimeCreated, Message
Get-ScheduledTask | Where-Object {$_.TaskPath -notlike '\Microsoft*'} |
Select-Object TaskName, TaskPath, State
On Linux:
ps -ef --forest
systemctl list-timers --all
crontab -l
ls -lah /etc/cron.* /var/spool/cron 2>/dev/null
Look for shells, scripting engines, archive tools, or remote admin utilities that do not belong on a print server.
Web access logs and suspicious requests from external IPs
The web logs are often the cleanest way to see the first touch.
I would filter for:
- requests from non-corporate IP ranges
- odd user agents
- uncommon paths
- bursts of 4xx followed by a 200
- requests with long or malformed parameters
- POSTs to endpoints that are usually read-only
A quick Linux-side example:
grep -Ei 'papercut|pc|admin|login' /var/log/* 2>/dev/null | tail -n 200
On Windows, inspect the application logs plus any reverse proxy or IIS logs in front of the service. If you have WAF or proxy logs, those are often more useful than the application logs because they preserve blocked probes too.
Practical detection steps you can run today
Quick triage commands for Windows and Linux hosts
Here is the fast path I would use during a live response:
- Confirm version and patch state.
- Pull the last 7 to 14 days of PaperCut logs.
- Check for unexpected admin actions.
- Check for new processes, tasks, services, or cron entries.
- Correlate any strange web requests with host execution times.
Example Windows commands:
Get-ChildItem "C:\Program Files" -Recurse -ErrorAction SilentlyContinue |
Where-Object {$_.FullName -match 'PaperCut'} |
Select-Object -First 20 FullName
Get-EventLog -LogName Application -Newest 200 | Where-Object {
$_.Source -match 'PaperCut'
} | Select-Object TimeGenerated, EntryType, Message
Example Linux commands:
journalctl -u papercut* --since "14 days ago"
find /opt/papercut -type f -mtime -14 -ls | head -n 50
File and process integrity checks around the PaperCut install path
Do not only search for known bad filenames. Check for change.
Questions I would ask:
- did any file under the install path change recently?
- are there new jars, scripts, or config files?
- do hashes of core binaries match what you expect from your deployment process?
- did the service account gain access to new directories?
If you have an EDR, pivot on the PaperCut service process and review all children, network connections, and file writes from that tree.
Network indicators that suggest interactive exploitation rather than normal printing traffic
I would pay attention to:
- short sessions with no follow-on print activity
- requests from a single external IP to multiple PaperCut endpoints
- repeated access failures followed by a successful admin action
- traffic to unusual destinations after the first suspicious request
- outbound connections from the server to hosts it has never contacted before
That pattern looks like a human, not a print job.
Containment and hardening without breaking the print service
Isolate the server, restrict exposure, and preserve logs before making changes
If you suspect compromise, do not immediately “fix” the box by restarting everything.
First:
- preserve logs
- capture volatile state if your process supports it
- isolate the server from untrusted networks
- keep printing service impact in mind, but do not let availability erase evidence
A lot of useful forensic data disappears during a hasty reboot.
Limit admin access, rotate credentials, and review service accounts
After containment, reduce trust:
- restrict admin console access to a small management subnet
- rotate any credentials the service can read
- review the service account’s local and domain privileges
- remove obsolete shared credentials from config or scripts
If the server was ever reachable by a broad set of users, assume credentials on or near it are suspect.
Patch or upgrade, then verify the fix with a clean restart and log review
Patching matters, but I would not call the job done until I also:
- verified the server restarted cleanly
- reviewed logs after restart for unexpected errors
- confirmed the service did not reintroduce old config or plugins
- rechecked outbound connections and admin access paths
A clean restart is useful because some persistence only appears when the service starts back up.
What this incident says about server security more broadly
Why internal IT system is not the same as low risk
PaperCut is a good example of a common security mistake: assuming an internal utility is low value. Internal does not mean harmless. Internal often means under-monitored and over-trusted.
If a server can be reached from user workstations, VPN clients, or the internet, it is part of the attack surface. That is true even when it prints badges, invoices, or office memos.
The operational lesson: monitoring and segmentation matter as much as patching
The technical lesson here is not “patch faster” in isolation. It is:
- segment the service so it does not see the whole network
- log the actions that matter before an incident
- alert on unusual admin and process behavior
- review print infrastructure like any other server with privileged access
That is the difference between a patch event and an incident response event.
Conclusion: treat this as a live incident response question, not a routine update
My view is that the report should change how defenders think about PaperCut right now. If the report is accurate, then “all versions impacted” means version checks are not enough, and active exploitation means you should assume some servers were touched before anyone noticed.
So the practical move is not just to upgrade. It is to answer three questions as quickly as possible:
- Was the server exposed in a way attackers could reach?
- Do the logs or host state show suspicious activity?
- Is there any sign of persistence or lateral movement?
If you cannot answer those cleanly, treat the server as a live investigation, not a routine maintenance task.


