Following active intrusions, the vendor issued an emergency mitigation, but threat actors quickly bypassed it, forcing the release of subsequent patches for comprehensive structural hardening. PaperCut servers represent prime targets due to their deep network integration, elevated execution privileges, and direct connections to identity providers like Active Directory to manage enterprise print queues.
Print management servers require extensive, deeply integrated network access to function effectively as must communicate with virtually every endpoint, workstation, and networked printer across the organisation to manage print queues, track usage, and enforce policies.
The Exploit Chain
The two-stage attack requires no prior authentication or user interaction. In stage one, attackers exploit an improper access control flaw in the Apache Tapestry web framework. By crafting a specific "complex direct" HTTP request, they bypass authentication checks by requesting a public page while secretly invoking a privileged administrative component. This allows attackers to silently overwrite external user-lookup settings with malicious database configurations.
In stage two, because PaperCut dynamically loads database drivers without a strict allowlist, the poisoned settings force the application to load a malicious Java Database Connectivity (JDBC) string. When triggered by a benign UserList search, the embedded Apache Derby driver opens an attacker-controlled H2 database URL, which parses embedded JavaScript via the Nashorn engine to natively execute arbitrary commands on the host operating system.
The observed URI structures typically take the following forms, where the integer segment in the path is arbitrary:
- /app?service=direct/1/Error/ConfigEditor/quickFindForm
- /app?service=direct/1/Error/ConfigEditor/$Form
- /app?service=direct/1/Error/UserList/$QuickFind.$Form
Exploitation in the Wild
Initial automated reconnaissance involved Base64-encoded commands to profile target operating systems and enumerate installed security solutions. Following this, attackers dropped hex-encoded Java binaries, typically named Udydn.class or Moo97.class, into the server's filesystem for deeper profiling.
To evade detection, these payloads executed aggressive self-cleanup routines, specifically deleting the primary PaperCut server.log file to blind defenders before deleting themselves. The string d2hvYW1pICYgdmVyICYgdGFza2xpc3Q= was injected to execute whoami & ver & tasklist. By enumerating all active processes via tasklist, the threat actors were actively profiling the host environment to identify installed Endpoint Detection and Response (EDR) solutions, antivirus agents, and other security monitoring tools that might impede further payload delivery
By early September 2026, operations shifted to manual, hands-on-keyboard activity as Initial Access Brokers (IABs) deployed bespoke remote access tools and in-memory payloads to establish persistent backdoors and facilitate lateral movement. Some groups also hijacked PaperCut’s native database utilities to initiate direct data theft operations.
Log-Based Indicators: If centralised log forwarding is actively deployed, or if the payload failed to execute its cleanup routine successfully, analysts should query for the following specific artefacts
| Indicator Type |
Description / Value |
Forensic Significance |
| Error Log |
ERROR No suitable driver found for jdbc:no:x |
Indicates active manipulation of the user-lookup.db-driver configuration parameter. The attacker is attempting to force the loading of a non-existent or malicious JDBC driver. |
| Error Log |
ERROR DatabaseUtils - Database error looking up cardID: VALUES CAST |
Confirms the execution of the poisoned SQL statement during the final UserList lookup phase of the exploit chain. |
| Encoded String |
d2hvYW1pICYgdmVy |
Base64 encoded payload for the command whoami & ver. Indicates active system reconnaissance and privilege verification. |
| Encoded String |
d2hvYW1pICYgdmVyICYgdGFza2xpc3Q= |
Base64 encoded payload for the command whoami & ver & tasklist. Indicates advanced profiling and enumeration of installed EDR solutions. |
| Log String |
DB URL: jdbc:derby:memory:pwn |
Captured immediately following the hex-encoded data blob. This string definitively confirms the execution of arbitrary Java code via the Derby/H2 database pipeline. |
| File Anomaly |
Missing, unexpectedly truncated, or deleted server.log files. |
A high-confidence indicator of successful payload execution and subsequent automated anti-forensic cleanup. |
The Derby Log Anomaly: While the malicious payload successfully deleted the primary application log, it routinely failed to delete the internal Apache Derby database log file located at /data/internal/derby.log, likely due to the file being locked by the active Java process or simply overlooked during the cleanup routine.
| File Path |
High Confidence Log Entry |
Context |
| /data/internal/derby.log |
Booting Derby version ... on database directory memory:C:\Program Files\PaperCut MF\server\data\internal\pwn |
The attacker leverages an in-memory Derby database named pwn to trigger the Java RCE. The presence of this log entry immediately prior to expected execution times represents a definitive, high-confidence indicator of compromise. |
Filesystem Artifacts: If the exploit payload failed to delete itself, or if file-integrity monitoring (FIM) and EDR solutions successfully captured the file creation events before the deletion routine executed, the following file paths are indicative of an attack:
| Artifact Type |
File Name / Path |
Description |
| Malicious Class File |
[Install_Dir]/server/lib/Udydn.class |
The primary compiled Java payload dropped by the RCE execution. |
| Malicious Class File |
[Install_Dir]/server/lib/Moo97.class |
An alternative naming convention observed for the primary Java payload. |
| Output Data File |
[Install_Dir]/server/data/content/Udydn.out |
The temporary output file utilized by the payload to store directory listings and system profile data prior to exfiltration. |
| Staging Script |
[Install_Dir]/server/data/content/Udydn.cmd |
An intermediary script utilized to stage and execute commands under Windows environments. |
| Suspicious Process |
Child processes spawning from pc-app.exe |
Any unexpected OS commands (e.g., cmd.exe, powershell.exe, sh, bash, charmap.exe) originating from the PaperCut Application Server process indicate successful RCE. |
Mitigation & Recommendations
- Remove Public Exposure Immediately: The web administration interfaces (ports 9191/9192) must not be accessible from the public internet. Restrict access strictly via Virtual Private Networks (VPNs), firewall Access Control Lists (ACLs), or Zero Trust Network Access (ZTNA).
- Apply Emergency Patch Release 3: Admins are required to secure versions 24(24.1.10), 25 (25.0.13) , and 26 (26.0.5) against both vulnerabilities and known bypasses.
Advisory can be found here
- Hunt for Artifacts: Because attackers aggressively wipe server.log, defenders should check /data/internal/derby.log for anomalous entries or search the file system for dropped files like Udydn.class and unexpected child processes spawning from pc-app.exe.
Don’t forget to share this article