CVE-2023-39611
Executive Summary
CVE-2023-39611 is a path traversal vulnerability in Software FX Chart FX 7 (version 7.0.4962.20829). An attacker can send crafted web requests to enumerate and read arbitrary files from the local filesystem of the server hosting the Chart FX 7 application. This vulnerability is currently unpatched, with no official fix available from the vendor. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk is significant due to the potential for sensitive data exposure.
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 affects a proprietary software component (Chart FX 7) and is not related to open-source package ecosystems (NPM, PyPI, Go, Ruby). No supply chain attack vector is identified.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, but based on the vulnerability description, a reasonable assessment would be:
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: High (C:H)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
- Base Score: 7.5 (High)
Threat Level: High – Unauthenticated remote file read can lead to exposure of configuration files, credentials, and sensitive business data.
Deep Dive & Mechanics
The vulnerability resides in the web interface of Chart FX 7, which processes user-supplied input without proper sanitization. By manipulating parameters in HTTP requests (likely file paths or resource identifiers), an attacker can traverse directories outside the intended web root. For example, a request like:
GET /ChartFX/../../windows/win.ini HTTP/1.1
could return the contents of win.ini if the application does not validate the path.
The root cause is a lack of input validation and insufficient path canonicalization. The application likely uses a function like File.ReadAllText(userInput) without checking for .. sequences.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual C#):
public string GetFileContent(string fileName)
{
string basePath = "C:\\Program Files\\ChartFX\\Resources\\";
string fullPath = basePath + fileName;
return File.ReadAllText(fullPath);
}
Patched Code (Conceptual):
public string GetFileContent(string fileName)
{
string basePath = "C:\\Program Files\\ChartFX\\Resources\\";
string fullPath = Path.GetFullPath(Path.Combine(basePath, fileName));
if (!fullPath.StartsWith(basePath))
{
throw new SecurityException("Invalid path.");
}
return File.ReadAllText(fullPath);
}
The patched version uses Path.GetFullPath to resolve .. sequences and then verifies that the resolved path starts with the allowed base directory.
Exploitation & Lab Setup
Red Team
- Identify Target: Scan for Chart FX 7 endpoints (e.g.,
/ChartFX/,/fxchart/). - Craft Request: Use a tool like
curlor Burp Suite to send a path traversal payload:curl "http://target.com/ChartFX/../../windows/win.ini" - Enumerate Files: Try common files:
/etc/passwd(Linux)../../../../etc/passwd../../../../Windows/System32/drivers/etc/hosts
- Automate: Use a script to brute-force file paths.
Blue Team
- Monitor Logs: Look for HTTP requests containing
../or..%2fpatterns. - Deploy WAF Rules: Block requests with path traversal sequences.
- Harden Application: Restrict file system access via application pool identity (IIS) or container permissions.
- Network Segmentation: Isolate the Chart FX server from sensitive data stores.
Indicators of Compromise (IOCs)
- Network: HTTP requests with
../or..%2fin the URI path. - Logs: Web server logs showing 200 responses to path traversal patterns.
- File System: Unexpected access to files outside the web root (e.g.,
win.ini,passwd). - Process: Chart FX process reading files from system directories.
Detection Engineering
YARA Rule
The full machine-readable detection artifact (Sigma, YARA, Suricata, Elastic, Splunk or Wazuh rule body) is available through the ValtersIT API — moved there in response to large-scale automated scraping, to keep this independently-researched intelligence sustainable. The written analysis on every record remains fully open.
[ GET API ACCESS ] →Sigma Rule
The full machine-readable detection artifact (Sigma, YARA, Suricata, Elastic, Splunk or Wazuh rule body) is available through the ValtersIT API — moved there in response to large-scale automated scraping, to keep this independently-researched intelligence sustainable. The written analysis on every record remains fully open.
[ GET API ACCESS ] →Suricata Rule
The full machine-readable detection artifact (Sigma, YARA, Suricata, Elastic, Splunk or Wazuh rule body) is available through the ValtersIT API — moved there in response to large-scale automated scraping, to keep this independently-researched intelligence sustainable. The written analysis on every record remains fully open.
[ GET API ACCESS ] →Remediation & Mitigation
Since no official patch is available, the following mitigations are recommended:
- Input Validation: Implement strict allowlisting of allowed file paths.
- Web Application Firewall (WAF): Deploy rules to block path traversal patterns.
- Least Privilege: Run the Chart FX application with minimal file system permissions.
- Network Controls: Restrict access to the Chart FX interface to trusted IPs only.
- Monitor: Continuously monitor for exploitation attempts using the provided detection rules.
- Vendor Contact: Reach out to Software FX for a security update.
Valters IT
DevSecOps & Cyber Threat Intelligence
Security researchers use these queries on Shodan.io to find vulnerable systems globally.
Full Shodan queries for this CVE are available through the ValtersIT API. They were moved behind the API in response to large-scale automated scraping, and to keep this independently-researched intelligence sustainable. The written analysis above remains fully open.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.