CVE-2025-61258
Executive Summary
CVE-2025-61258 is a denial of service (DoS) vulnerability in Outsystems Platform Server version 11.18.1.37828. The issue arises when a crafted HTTP request is sent with a Content-Length header value that does not match the actual body length. This mismatch can cause the server to hang or crash, leading to a denial of service condition. The vendor has stated they are unable to reproduce the issue, and no official patch has been released as of this analysis. The vulnerability has a CVSS score of 0.0 (unscored) and an EPSS score of 0.0%, indicating low exploitation activity in the wild. No public proof-of-concept (PoC) code or exploit is available.
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 NPM, PyPI, Go, or Ruby packages. It affects the Outsystems Platform Server, a proprietary low-code platform. Organizations using Outsystems should monitor vendor communications for future patches.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Unscored)
- Vector: UNKNOWN
- Attack Vector (AV): Network (likely)
- Attack Complexity (AC): Low (likely)
- Privileges Required (PR): None (likely)
- User Interaction (UI): None (likely)
- Scope (S): Unchanged
- Confidentiality (C): None
- Integrity (I): None
- Availability (A): High
Threat Level: Medium (due to potential for service disruption, but low exploitation likelihood)
Deep Dive & Mechanics
The vulnerability is rooted in how the Outsystems Platform Server handles HTTP requests with mismatched Content-Length headers. When a client sends a request where the Content-Length header value does not match the actual body length, the server may enter an unexpected state. This can cause the server to wait indefinitely for more data, consume excessive resources, or crash.
Technical Details:
- The server likely uses the
Content-Lengthheader to determine how many bytes to read for the request body. - If the header claims a larger body than actually sent, the server may block waiting for the remaining bytes.
- If the header claims a smaller body, the server may read beyond the actual body, causing parsing errors or memory corruption.
- This can lead to a denial of service by exhausting server threads or causing a crash.
Attack Vector:
- An unauthenticated attacker sends a crafted HTTP request to the vulnerable server.
- The request includes a
Content-Lengthheader with a value that does not match the body length. - The server processes the request and enters a state of resource exhaustion or crash.
Vulnerable vs. Patched Code
Since no patch is available, a direct code comparison is not possible. However, the vulnerable behavior is likely in the HTTP request parsing logic.
Vulnerable Code (Conceptual):
// Pseudo-code for vulnerable parsing
int content_length = atoi(get_header("Content-Length"));
char *body = malloc(content_length);
read(socket, body, content_length); // Blocks if content_length > actual body
Patched Code (Conceptual):
// Pseudo-code for patched parsing
int content_length = atoi(get_header("Content-Length"));
int max_body_size = 1024 * 1024; // 1 MB limit
if (content_length > max_body_size) {
return 413; // Payload Too Large
}
char *body = malloc(content_length);
int bytes_read = read(socket, body, content_length);
if (bytes_read != content_length) {
// Handle mismatch gracefully
free(body);
return 400; // Bad Request
}
Exploitation & Lab Setup
Red Team (Exploitation)
Lab Setup:
- Install Outsystems Platform Server 11.18.1.37828 in a controlled environment.
- Ensure the server is accessible over the network.
Exploitation Steps:
- Craft an HTTP request with a mismatched
Content-Lengthheader. - Send the request using a tool like
curlor a custom script.
Example Request:
POST /some-endpoint HTTP/1.1
Host: target-server
Content-Length: 1000
Content-Type: application/x-www-form-urlencoded
body=short
Curl Command:
curl -X POST http://target-server/some-endpoint \
-H "Content-Length: 1000" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "body=short"
Expected Outcome: The server may hang, crash, or become unresponsive to other requests.
Blue Team (Detection & Defense)
Detection:
- Monitor for HTTP requests with
Content-Lengthheaders that do not match the actual body size. - Look for patterns of repeated requests with mismatched headers from the same source IP.
Defense:
- Implement a Web Application Firewall (WAF) rule to block requests with mismatched
Content-Lengthheaders. - Apply rate limiting to prevent abuse.
- Monitor server logs for unusual HTTP request patterns.
WAF Rule (ModSecurity):
SecRule REQUEST_HEADERS:Content-Length "!@eq %{REQUEST_BODY_LENGTH}" \
"id:1001,phase:1,deny,status:400,msg:'Content-Length mismatch'"
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests with
Content-Lengthheader value not matching the body length. - Repeated requests from the same IP address targeting the same endpoint.
- HTTP requests with
- System IOCs:
- Server logs showing
Content-Lengthmismatch errors. - Server crashes or hangs.
- High CPU or memory usage on the server.
- Server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_61258_Content_Length_Mismatch {
meta:
description = "Detects HTTP requests with mismatched Content-Length header"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2025-61258"
strings:
$content_length = /Content-Length:\s*\d+/ nocase
$body = /body=[a-z]+/ nocase
condition:
$content_length and $body and #content_length != #body
}
Sigma Rule
title: CVE-2025-61258 - Content-Length Mismatch DoS
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects HTTP requests with mismatched Content-Length header
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
sc-status: 400
cs-uri-query|contains: 'Content-Length'
condition: selection
falsepositives:
- Legitimate requests with incorrect headers
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-61258 - Content-Length Mismatch DoS"; flow:to_server; content:"Content-Length"; http_header; pcre:"/Content-Length:\s*\d+/i"; pcre:"/body=[a-z]+/i"; threshold: type both, track by_src, count 5, seconds 60; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the vulnerable server if possible.
- Implement a WAF rule to block requests with mismatched
Content-Lengthheaders. - Monitor server logs for signs of exploitation.
Long-Term Fix:
- Apply vendor patch when available.
- Upgrade to a patched version of Outsystems Platform Server.
- Review HTTP request handling code for similar vulnerabilities.
Workarounds:
- Use a reverse proxy (e.g., Nginx, Apache) to validate
Content-Lengthheaders before forwarding to the Outsystems server. - Configure the server to reject requests with
Content-Lengthheaders that exceed a reasonable limit.
Valters IT
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.