☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-9903

CVE-2025-9903 Out-of-Bounds Access in Canon
📅 PUBLISHED: 2025-09-29 00:44 UTC 🔄 UPDATED: 2026-09-23 20:28 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.36%
👁️
0.36% probability
8.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-9903 is a critical out-of-bounds write vulnerability affecting multiple Canon printer drivers, including Generic Plus PCL6, UFR II, LIPS4, LIPSLX, PS, PCL6, and FAX drivers. The flaw resides in the print processing component, allowing an attacker to trigger memory corruption by sending a specially crafted print job. Successful exploitation could lead to arbitrary code execution in the context of the print spooler service, potentially enabling lateral movement within a network or data exfiltration from printed documents. As of this report, no official patch has been released, and no public proof-of-concept (PoC) code is available. The vulnerability is classified as high severity due to the potential for remote code execution when combined with user interaction (e.g., printing a malicious document).

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

  • CVSS Score: 5.9 (Medium)
  • Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
  • Attack Vector (AV): Local (L) – Requires local access to the print spooler.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): Required (R) – Victim must print a malicious document.
  • Scope (S): Unchanged (U) – Exploitation stays within the print spooler.
  • Confidentiality (C): High (H) – Potential to read arbitrary memory.
  • Integrity (I): High (H) – Potential to modify memory or execute code.
  • Availability (A): High (H) – Potential to crash the spooler or system.

Threat Level: High. While the CVSS score is medium, the impact on confidentiality, integrity, and availability is high. The requirement for user interaction (printing a malicious document) is a common attack vector via phishing or drive-by downloads.

Deep Dive & Mechanics

The vulnerability is an out-of-bounds write (CWE-787) in the print processing component of multiple Canon printer drivers. When a print job is submitted, the driver parses the print data (e.g., PCL6, UFR II, LIPS4 commands). A lack of proper bounds checking on input data allows an attacker to write data beyond the allocated buffer. This can corrupt adjacent memory structures, leading to arbitrary code execution.

Technical Details:

  • The flaw exists in the parsing of print job metadata or page description language commands.
  • By crafting a print job with oversized or malformed fields (e.g., page dimensions, font data, or escape sequences), an attacker can trigger a buffer overflow.
  • The overflow occurs in the kernel-mode or user-mode print spooler component, depending on the driver architecture.
  • Successful exploitation can overwrite function pointers or return addresses, redirecting execution to attacker-controlled shellcode.

Affected Drivers:

  • Generic Plus PCL6 Printer Driver
  • Generic Plus UFR II Printer Driver
  • Generic Plus LIPS4 Printer Driver
  • Generic Plus LIPSLX Printer Driver
  • Generic Plus PS Printer Driver
  • UFRII LT Printer Driver
  • CARPS2 Printer Driver
  • Generic FAX Driver
  • LIPS4 Printer Driver
  • LIPSLX Printer Driver
  • UFR II Printer Driver
  • PS Printer Driver
  • PCL6 Printer Driver

Vulnerable vs. Patched Code

Since no patch is available, a direct code comparison is not possible. However, based on the vulnerability type, the following pseudo-code illustrates the vulnerable pattern:

Vulnerable Code (C-like):

void parse_print_job(unsigned char *input, size_t input_len) {
    char buffer[256];
    // No bounds check on input_len
    memcpy(buffer, input, input_len); // Out-of-bounds write if input_len > 256
}

Patched Code (Expected):

void parse_print_job(unsigned char *input, size_t input_len) {
    char buffer[256];
    if (input_len > sizeof(buffer)) {
        // Handle error or truncate
        return;
    }
    memcpy(buffer, input, input_len);
}

The patch would involve adding proper bounds checking before any memory copy operations in the print job parsing routines.

Exploitation & Lab Setup

Red Team (Exploitation):

  1. Setup: Install a vulnerable Canon printer driver on a Windows 10/11 VM. Configure a local printer using the driver.
  2. Craft Payload: Create a malicious print job (e.g., a .prn file) with oversized data in a specific field (e.g., page width or font size). Use a fuzzer to identify the exact offset for overwriting a return address.
  3. Trigger: Send the malicious print job to the printer queue. The victim must print the document (e.g., via double-click or print command).
  4. Exploit: The overflow overwrites a function pointer in the spooler, redirecting execution to shellcode embedded in the print job. Use a standard Windows shellcode (e.g., reverse shell or add user).

Blue Team (Defense):

  1. Detection: Monitor for unusual print job sizes or malformed print data. Use the Sigma rule below to detect exploitation attempts.
  2. Prevention: Disable unnecessary printer drivers. Use application whitelisting to block unknown print jobs.
  3. Mitigation: If possible, restrict print spooler access to trusted users only. Use network segmentation to isolate printers.

Lab Setup:

  • Attacker Machine: Kali Linux with Python for crafting print jobs.
  • Victim Machine: Windows 10 with vulnerable Canon driver.
  • Tool: Use a Python script to generate a .prn file with a buffer overflow payload.
# Example payload generation (conceptual)
payload = b"A" * 256  # Fill buffer
payload += b"BBBB"    # Overwrite return address
# Add shellcode
payload += b"\x90" * 100  # NOP sled
payload += shellcode
with open("malicious.prn", "wb") as f:
    f.write(payload)

Indicators of Compromise (IOCs)

  • File Hashes: Malicious .prn files with unusual sizes (e.g., > 10KB for a simple document).
  • Network Traffic: Unusual outbound connections from the print spooler process (spoolsv.exe) to external IPs.
  • Process Anomalies: spoolsv.exe spawning child processes (e.g., cmd.exe, powershell.exe).
  • Registry Changes: Modifications to printer driver registry keys under HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers.
  • Event Logs: Windows Event ID 7031 (Print Spooler service terminated unexpectedly) or 7034 (service crashed).

Detection Engineering

YARA Rule:

rule CVE_2025_9903_Canon_Printer_Driver_Exploit {
    meta:
        description = "Detects malicious print jobs targeting CVE-2025-9903"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-9903"
    strings:
        $pcl6_header = "PCL6" ascii wide nocase
        $ufr2_header = "UFR2" ascii wide nocase
        $lips4_header = "LIPS4" ascii wide nocase
        $overflow_pattern = { 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 } // 16 'A's
        $shellcode = { 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 } // NOP sled
    condition:
        (any of ($pcl6_header, $ufr2_header, $lips4_header)) and
        ($overflow_pattern or $shellcode)
}

Sigma Rule:

title: Canon Printer Driver Exploitation Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects potential exploitation of CVE-2025-9903 via oversized print jobs
author: Valters IT
date: 2025-04-10
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\spoolsv.exe'
        CommandLine|contains: 'print'
    condition: selection
falsepositives:
    - Legitimate large print jobs
level: high

Suricata Rule:

alert tcp any any -> any 9100 (msg:"CVE-2025-9903 Canon Printer Driver Exploit"; flow:to_server,established; content:"|50 43 4c 36|"; offset:0; depth:4; content:"|41 41 41 41|"; distance:0; within:100; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable Unused Drivers: Remove any Canon printer drivers that are not actively used.
  2. Restrict Print Access: Use Group Policy to limit who can submit print jobs to shared printers.
  3. Monitor Print Jobs: Enable logging on print servers and review for anomalies.

Long-Term Fix:

  • Await an official patch from Canon. Apply it as soon as it becomes available.
  • Consider using a third-party print management solution that can inspect print job data for malicious content.

Workarounds:

  • If patching is not possible, use a virtualized print environment or sandbox to isolate print processing.
  • Implement application whitelisting to prevent unknown executables from being launched by the print spooler.

Valters IT
DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-9903/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.