☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Draytek logo [ WEBSITE ] [ VENDOR STATS ]
SOON 🐛 CWE-457
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-10547

CVE-2025-10547 Memory Corruption in Draytek
📅 PUBLISHED: 2025-10-03 11:35 UTC 🔄 UPDATED: 2026-08-12 14:52 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.07%
👁️
0.07% probability
1.8× 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.
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
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-10547 is a critical uninitialized variable vulnerability in the HTTP CGI request arguments processing component of DrayTek Vigor Routers running DrayOS. The flaw allows an attacker to perform Remote Code Execution (RCE) through memory corruption. No patch or public exploit is currently available, and the CVSS score is listed as 0.0 due to incomplete data. The vulnerability affects an unknown range of firmware versions, and no official advisory has been released by DrayTek.

⚡ 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 (Uncalculated due to missing vector data)
  • Attack Vector: Network (likely)
  • Attack Complexity: Low (likely)
  • Privileges Required: None (likely)
  • User Interaction: None (likely)
  • Scope: Unchanged (likely)
  • Confidentiality Impact: High (likely)
  • Integrity Impact: High (likely)
  • Availability Impact: High (likely)
  • Threat Level: Critical (based on RCE potential)

Deep Dive & Mechanics

The vulnerability resides in the HTTP CGI request arguments processing component of DrayOS. When the router processes CGI requests, it fails to initialize a variable before use. This uninitialized variable can be manipulated by an attacker through crafted HTTP requests, leading to memory corruption. The corruption can be leveraged to execute arbitrary code on the appliance, granting full control to the attacker.

The attack surface is exposed via the router's web management interface, which typically listens on ports 80 and 443. No authentication is required to trigger the vulnerability, making it exploitable from the local network or potentially from the internet if the interface is exposed.

Vulnerable vs. Patched Code

Since no patch or source code is available, a generic example of the vulnerable pattern is provided:

Vulnerable Code (C-like pseudocode):

void process_cgi_request(char *args) {
    char *value;
    // Uninitialized variable 'value' used
    if (strstr(args, "param=")) {
        value = extract_param(args, "param");
    }
    // 'value' may be uninitialized if param not found
    process_value(value); // Memory corruption possible
}

Patched Code (hypothetical):

void process_cgi_request(char *args) {
    char *value = NULL; // Initialize to NULL
    if (strstr(args, "param=")) {
        value = extract_param(args, "param");
    }
    if (value != NULL) {
        process_value(value);
    }
}

Exploitation & Lab Setup

Red Team

Lab Setup:

  1. Obtain a DrayTek Vigor Router (e.g., Vigor 2925) running a vulnerable DrayOS version.
  2. Connect the router to a isolated network with a Kali Linux attacker machine.
  3. Ensure the router's web interface is accessible (default IP: 192.168.1.1).

Exploitation Steps:

  1. Scan the router for open ports: nmap -p 80,443 192.168.1.1
  2. Craft a malicious HTTP request targeting the CGI endpoint:
    GET /cgi-bin/status?param=AAAA...AAAA HTTP/1.1
    Host: 192.168.1.1
    
    (Replace AAAA... with a payload to trigger memory corruption)
  3. Use a tool like curl or custom Python script to send the request:
    curl -v "http://192.168.1.1/cgi-bin/status?param=$(python3 -c 'print("A"*1000)')"
    
  4. Monitor for crashes or unexpected behavior. If RCE is achieved, execute a reverse shell:
    # Example payload (requires knowledge of memory layout)
    

Note: No public exploit exists; this is a theoretical approach.

Blue Team

Detection:

  • Monitor for anomalous HTTP requests to /cgi-bin/ endpoints with excessively long parameters.
  • Enable logging on the router (if available) and review for crashes or restarts.
  • Use network intrusion detection systems (NIDS) to flag suspicious patterns.

Mitigation:

  • Disable remote management of the router if not required.
  • Restrict access to the web interface to trusted IPs only.
  • Apply firewall rules to block external access to ports 80/443.

Indicators of Compromise (IOCs)

  • Network: HTTP requests with unusually long query strings targeting /cgi-bin/ paths.
  • System: Router crashes, unexpected reboots, or memory corruption logs.
  • File: No specific file IOCs due to lack of exploit details.
  • Registry: Not applicable (embedded system).

Detection Engineering

YARA Rule

rule CVE_2025_10547_HTTP_CGI_Exploit {
    meta:
        description = "Detects HTTP requests targeting DrayTek CGI with long parameters"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-10547"
    strings:
        $cgi_path = "/cgi-bin/"
        $long_param = /param=[A-Za-z0-9]{500,}/
    condition:
        $cgi_path and $long_param
}

Sigma Rule

title: DrayTek CGI Uninitialized Variable Exploit Attempt
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects HTTP requests with long parameters to DrayTek CGI endpoints
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-query|contains: "/cgi-bin/"
        cs-uri-query|re: "param=[A-Za-z0-9]{500,}"
    condition: selection
falsepositives:
    - Legitimate long parameters (unlikely)
level: high

Suricata Rule

alert http any any -> $HOME_NET any (
    msg:"CVE-2025-10547 DrayTek CGI Uninitialized Variable Exploit Attempt";
    flow:to_server,established;
    content:"/cgi-bin/"; http_uri;
    pcre:"/param=[A-Za-z0-9]{500,}/Ri";
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

  1. Immediate Actions:

    • Disable remote web management on the router.
    • Restrict access to the management interface via firewall rules.
    • Monitor for any suspicious activity on the network.
  2. Long-term Fix:

    • Await an official firmware patch from DrayTek.
    • Apply the patch as soon as it becomes available.
    • Consider replacing the router if no patch is released.
  3. Workarounds:

    • Use VPN to access the management interface instead of exposing it directly.
    • Implement network segmentation to isolate the router from untrusted hosts.

Valters IT
DevSecOps & Cyber Threat Intelligence

👁️ 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.

DrayOS
Vigor Router
http.title:"Vigor"

💣 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-2025-10547/ · 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.