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

CVE-2025-13943

CVE-2025-13943 Command Injection in Zyxel
📅 PUBLISHED: 2026-02-24 02:38 UTC 🔄 UPDATED: 2026-09-23 20:12 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: 1.40%
👁️
1.40% probability
34.9× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
Country: Taiwan License: Commercial
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
8.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-13943 is a post-authentication command injection vulnerability in the Zyxel EX3301-T0 firmware versions through 5.50(ABVY.7)C0. An authenticated attacker can exploit the log file download function to execute arbitrary OS commands on the affected device. With a CVSS score of 8.8, this vulnerability poses a high risk to network integrity and confidentiality. No public proof-of-concept (PoC) or exploit code has been released at this time, and the vendor has not yet provided a patch.

⚡ 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: 8.8 (High)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: High (PR:H) – requires authentication
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: High (C:H)
  • Integrity Impact: High (I:H)
  • Availability Impact: High (A:H)

The high privileges required reduce the immediate threat, but once authenticated, an attacker can fully compromise the device.

Deep Dive & Mechanics

The vulnerability resides in the log file download functionality of the Zyxel EX3301-T0 router. The application fails to properly sanitize user-supplied input when constructing a command to retrieve log files. An authenticated attacker can inject arbitrary OS commands by manipulating parameters such as the filename or path. For example, a request like GET /download_log?file=test.log;id could execute the id command on the underlying operating system.

The command injection occurs because the input is passed directly to a system call (e.g., system(), exec(), or popen()) without proper escaping or validation. This allows an attacker to chain commands using shell metacharacters like ;, |, &&, or backticks.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

import subprocess

def download_log(file_name):
    # Vulnerable: direct concatenation
    command = "cat /var/log/" + file_name
    subprocess.call(command, shell=True)

Patched Code (Conceptual):

import subprocess
import shlex

def download_log(file_name):
    # Patched: use shlex.quote to escape input
    safe_file = shlex.quote(file_name)
    command = "cat /var/log/" + safe_file
    subprocess.call(command, shell=True)

The patched version uses shlex.quote() to escape shell metacharacters, preventing command injection.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Valid credentials for the Zyxel EX3301-T0 web interface.
  • Network access to the device.

Exploitation Steps:

  1. Authenticate to the web interface.
  2. Craft a malicious request to the log download endpoint:
    GET /download_log?file=test.log;id HTTP/1.1
    Host: <target_ip>
    Cookie: <session_cookie>
    
  3. The server executes cat /var/log/test.log;id, returning the output of the id command.

Example using curl:

curl -X GET "http://<target_ip>/download_log?file=test.log;id" -b "session=<session_cookie>"

Blue Team

Detection:

  • Monitor HTTP requests to /download_log for unusual parameters containing shell metacharacters (;, |, &, `).
  • Alert on high volumes of failed authentication attempts followed by log download requests.

Hunting:

  • Search web server logs for patterns like file=*.log; or file=*.log|.
  • Correlate with authentication logs to identify compromised accounts.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests to /download_log with parameters containing shell metacharacters.
    • Outbound connections from the device to unknown IPs on non-standard ports.
  • File System IOCs:
    • Unexpected files in /tmp/ or /var/log/ created by injected commands.
    • Modified system binaries or scripts.
  • Process IOCs:
    • Unusual processes spawned by the web server (e.g., id, whoami, nc).

Detection Engineering

YARA Rule

rule CVE_2025_13943_Command_Injection {
    meta:
        description = "Detects command injection attempts in log download requests"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2025-13943"
    strings:
        $cmd1 = "download_log?file="
        $cmd2 = ";"
        $cmd3 = "|"
        $cmd4 = "`"
    condition:
        all of ($cmd*) and #cmd1 > 0
}

Sigma Rule

title: CVE-2025-13943 Command Injection Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects command injection attempts in Zyxel EX3301-T0 log download
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-query|contains:
            - 'download_log?file='
            - ';'
            - '|'
            - '`'
    condition: selection
falsepositives:
    - Legitimate use of semicolons in filenames (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-13943 Command Injection Attempt"; flow:to_server; content:"GET"; http_method; content:"/download_log?file="; http_uri; pcre:"/(;|\||`)/"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Restrict network access to the Zyxel EX3301-T0 management interface to trusted IPs only.
  2. Disable the log download function if not required.
  3. Monitor logs for suspicious activity.

Long-term Fix:

  • Apply vendor patch once released.
  • Upgrade to a firmware version that includes input sanitization.
  • Implement Web Application Firewall (WAF) rules to block command injection patterns.

Workaround:

  • Use a reverse proxy to filter requests containing shell metacharacters in the file parameter.

Valters IT
Securing Digital Frontiers

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