CVE-2023-49508
Executive Summary
CVE-2023-49508 is a Directory Traversal vulnerability in YetiForceCRM versions 6.4.0 and earlier. A remote authenticated attacker can exploit the license parameter in the LibraryLicense.php component to read arbitrary files on the server, leading to the disclosure of sensitive information such as configuration files, credentials, or source code. The vulnerability has a CVSS score of 0.0 (likely unassigned or placeholder), but the impact is significant due to the potential for information leakage. No public proof-of-concept (PoC) or exploit code has been released, and no official patch is currently 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
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Unassigned)
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Authenticated user)
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: High
- Integrity Impact: None
- Availability Impact: None
- Threat Level: High (due to authenticated access and potential for sensitive data exposure)
Deep Dive & Mechanics
The vulnerability resides in the LibraryLicense.php file, which is part of the YetiForceCRM application. The license parameter is used to specify a license file path. Due to insufficient input validation, an attacker can inject path traversal sequences (e.g., ../) to navigate outside the intended directory and read arbitrary files on the server.
Root Cause: The application fails to sanitize or validate the license parameter, allowing directory traversal.
Attack Vector: An authenticated attacker sends a crafted HTTP request to the vulnerable endpoint with a malicious license parameter.
Impact: Successful exploitation allows the attacker to read sensitive files such as:
/etc/passwd- Database configuration files
- Application source code
- Environment variables
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// LibraryLicense.php (vulnerable)
$licenseFile = $_GET['license'];
$content = file_get_contents($licenseFile);
echo $content;
Patched Code (Conceptual):
// LibraryLicense.php (patched)
$licenseFile = basename($_GET['license']);
$allowedPath = '/var/www/html/licenses/';
$fullPath = $allowedPath . $licenseFile;
if (strpos(realpath($fullPath), realpath($allowedPath)) === 0) {
$content = file_get_contents($fullPath);
echo $content;
} else {
// Deny access
}
Exploitation & Lab Setup
Red Team
Lab Setup:
- Deploy YetiForceCRM version 6.4.0 in a controlled environment.
- Obtain authenticated session credentials (e.g., admin user).
- Use a tool like
curlor Burp Suite to send the exploit request.
Exploit Command:
curl -X GET "http://target.com/LibraryLicense.php?license=../../../etc/passwd" \
-H "Cookie: PHPSESSID=your_session_id"
Expected Output: The contents of /etc/passwd will be displayed.
Blue Team
Detection:
- Monitor for HTTP requests to
LibraryLicense.phpwith suspiciouslicenseparameters containing../or absolute paths. - Alert on unusual file read patterns from the web server.
Mitigation:
- Implement input validation to restrict the
licenseparameter to a whitelist of allowed files. - Apply the principle of least privilege to the web server user.
- Use a Web Application Firewall (WAF) to block path traversal attempts.
Indicators of Compromise (IOCs)
- Network: HTTP GET requests to
/LibraryLicense.phpwithlicenseparameter containing../or absolute paths. - File System: Unauthorized reads of sensitive files (e.g.,
/etc/passwd,.env). - Logs: Web server access logs showing requests to
LibraryLicense.phpwith suspicious parameters.
Detection Engineering
YARA Rule
rule Detect_CVE_2023_49508_Directory_Traversal {
meta:
description = "Detects directory traversal attempts in YetiForceCRM LibraryLicense.php"
author = "Valters IT"
date = "2025-04-08"
cve = "CVE-2023-49508"
strings:
$traversal1 = "../"
$traversal2 = "..\\"
$traversal3 = "/etc/passwd"
$traversal4 = "windows\\win.ini"
$param = "license="
condition:
$param and any of ($traversal*)
}
Sigma Rule
title: YetiForceCRM Directory Traversal via LibraryLicense.php
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects directory traversal attempts in YetiForceCRM LibraryLicense.php
author: Valters IT
date: 2025-04-08
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-stem: '/LibraryLicense.php'
cs-uri-query|contains: 'license='
filter:
cs-uri-query|contains: 'license=valid_license_key'
condition: selection and not filter
falsepositives:
- Legitimate license file requests
level: high
Suricata Rule
alert http any any -> any any (msg:"YetiForceCRM Directory Traversal Attempt"; flow:to_server; content:"GET"; http_method; content:"/LibraryLicense.php"; http_uri; content:"license="; http_uri; pcre:"/license=.*\.\.\//i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable or restrict access to
LibraryLicense.phpif not required. - Short-term: Implement input validation to allow only specific license file names.
- Long-term: Upgrade to a patched version of YetiForceCRM once available.
- Compensating Controls: Use a WAF to block path traversal patterns.
- Monitoring: Enable detailed logging and alerting on suspicious requests.
Valters IT
Securing Digital Frontiers