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

CVE-2025-14235

CVE-2025-14235 Buffer Overflow in Canon
📅 PUBLISHED: 2026-01-15 23:38 UTC 🔄 UPDATED: 2026-09-23 19:42 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.92%
👁️
0.92% probability
22.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
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
9.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-14235 is a critical buffer overflow vulnerability in the XPS font fpgm data processing component of multiple Canon Small Office Multifunction Printers and Laser Printers. The flaw resides in how the printer firmware parses TrueType/OpenType font programs embedded within XPS documents. An attacker on the same network segment can send a specially crafted XPS file to the printer, triggering a stack-based buffer overflow. This can lead to a denial of service (device unresponsive) or, in a worst-case scenario, arbitrary code execution with the privileges of the printer’s firmware. The vulnerability affects firmware version v06.02 and earlier across a wide range of Canon models sold in Japan, the US, and Europe. No public exploit code or proof-of-concept is currently available, and no official patch has been released. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the potential for weaponization remains high given the severity of the overflow.

⚡ 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: 0.0 (No official vector assigned)
  • Attack Vector (AV): Adjacent Network (A) – attacker must be on the same network segment.
  • Attack Complexity (AC): Low (L) – no special conditions required.
  • Privileges Required (PR): None (N) – no authentication needed.
  • User Interaction (UI): None (N) – no user action required.
  • Scope (S): Unchanged (U) – vulnerability does not affect other components.
  • Confidentiality (C): High (H) – potential for arbitrary code execution.
  • Integrity (I): High (H) – potential for arbitrary code execution.
  • Availability (A): High (H) – device can become unresponsive.

Threat Level: Critical. The vulnerability allows remote code execution without authentication, making it highly dangerous for enterprise environments where printers are often exposed on internal networks.

Deep Dive & Mechanics

The vulnerability is a classic stack-based buffer overflow (CWE-121) in the XPS font processing routine. When a Canon printer receives an XPS document, it parses the embedded font data, specifically the fpgm (Font Program) table. This table contains TrueType/OpenType instructions that define how glyphs are rendered. The printer’s firmware copies this data into a fixed-size stack buffer without proper bounds checking. By providing an oversized fpgm table, an attacker can overwrite the return address and other critical stack data, leading to control-flow hijacking.

The attack flow:

  1. Attacker crafts an XPS document with a malicious font containing an oversized fpgm table.
  2. The document is sent to the printer via network printing protocols (e.g., IPP, SMB, or direct TCP port 9100).
  3. The printer’s XPS parser reads the font data and copies it into a stack buffer.
  4. The buffer overflows, corrupting the stack.
  5. If the attacker carefully constructs the payload, they can overwrite the return address and redirect execution to shellcode embedded in the overflow data.
  6. The shellcode executes with the privileges of the printer’s firmware, allowing the attacker to install malware, exfiltrate data, or use the printer as a pivot point.

Vulnerable vs. Patched Code

Since no patch is available, we can only describe the vulnerable code pattern. The vulnerable function likely looks like this:

void parse_fpgm_table(unsigned char *fpgm_data, unsigned int size) {
    unsigned char buffer[256]; // Fixed-size stack buffer
    // Vulnerable: no bounds check
    memcpy(buffer, fpgm_data, size);
    // ... process buffer ...
}

A patched version would include a bounds check:

void parse_fpgm_table(unsigned char *fpgm_data, unsigned int size) {
    unsigned char buffer[256];
    if (size > sizeof(buffer)) {
        // Handle error, reject font
        return;
    }
    memcpy(buffer, fpgm_data, size);
    // ... process buffer ...
}

Exploitation & Lab Setup

Red Team

Lab Setup:

  • Target: Canon printer with firmware v06.02 (e.g., Satera LBP670C Series).
  • Attacker: Linux machine with Python and Scapy.
  • Network: Same subnet as the printer.

Exploitation Steps:

  1. Identify the printer’s IP address (e.g., 192.168.1.100).
  2. Craft a malicious XPS document with an oversized fpgm table. Since no public exploit exists, you would need to reverse-engineer the firmware to find the exact offset and ROP gadgets.
  3. Send the document to the printer using IPP:
import socket

def send_xps(ip, port, xps_data):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((ip, port))
    sock.send(xps_data)
    sock.close()

# Example: send to port 9100 (raw printing)
with open('malicious.xps', 'rb') as f:
    xps_data = f.read()
send_xps('192.168.1.100', 9100, xps_data)
  1. Monitor for shell access or denial of service.

Blue Team

Detection:

  • Monitor network traffic for unusually large XPS documents sent to printers.
  • Use IDS/IPS rules to detect oversized fpgm tables in XPS streams.
  • Enable printer logging and audit for unexpected crashes or reboots.

Mitigation:

  • Segment printers on a separate VLAN with strict access controls.
  • Disable XPS printing if not required.
  • Apply vendor firmware updates as soon as they become available.

Indicators of Compromise (IOCs)

  • Network: XPS documents with fpgm table size > 256 bytes.
  • Host: Printer logs showing repeated crashes or unexpected reboots.
  • File: Malicious XPS files with embedded fonts containing oversized fpgm tables.
  • Process: Unusual network connections from the printer to external IPs (if code execution achieved).

Detection Engineering

YARA Rule

rule CVE_2025_14235_XPS_FPGM_Overflow {
    meta:
        description = "Detects XPS files with oversized fpgm font table"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-14235"
    strings:
        $fpgm_header = { 66 70 67 6D } // "fpgm" in ASCII
        $xps_magic = { 50 4B 03 04 } // ZIP magic (XPS is a ZIP)
    condition:
        $xps_magic at 0 and $fpgm_header and (uint32be(@fpgm_header + 4) > 256)
}

Sigma Rule

title: CVE-2025-14235 XPS Font Buffer Overflow Attempt
id: 8a9b3c2d-1e5f-4a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects network traffic containing oversized fpgm tables in XPS documents
author: Valters IT
date: 2025-04-10
logsource:
    category: network_connection
    product: suricata
detection:
    selection:
        app_protocol: 'http'
        http.request_body: 'PK\x03\x04'  # XPS magic
        http.request_body|contains: 'fpgm'
    condition: selection
falsepositives:
    - Legitimate large fonts in XPS documents
level: high

Suricata Rule

alert tcp $EXTERNAL_NET any -> $HOME_NET 9100 (msg:"CVE-2025-14235 XPS fpgm Buffer Overflow Attempt"; flow:to_server,established; content:"|50 4B 03 04|"; depth:4; content:"fpgm"; within:100; byte_test:4,>,256,0,relative,little; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Isolate affected printers on a separate VLAN with strict firewall rules. Disable XPS printing if not required.
  2. Short-term: Monitor vendor advisories for firmware updates. Apply patches as soon as they are released.
  3. Long-term: Implement network segmentation for all IoT/OT devices. Use IDS/IPS to detect anomalous XPS traffic. Regularly audit printer firmware versions.
  4. Workaround: If XPS is needed, use a print server that sanitizes XPS documents before forwarding to the printer.

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-14235/ · 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.