CVE-2026-39900: Cacti Reflected XSS via auth_profile.php Tab Parameter
Cacti, a widely-used open source tool for monitoring network performance and managing faults, has a reflected cross-site scripting (XSS) vulnerability in its auth_profile.php file. An attacker can craft a malicious link containing JavaScript code in the 'tab' parameter that executes in a victim's browser when they click it. The victim must be tricked into clicking the link, but once they do, the attacker gains the ability to steal session tokens, alter page content, or perform actions on behalf of the logged-in user. Cacti versions 1.2.30 and earlier are vulnerable; version 1.2.31 fixes the issue.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 6.1 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Weaknesses (CWE)
- CWE-79
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-06-25
NVD description (verbatim)
Cacti is an open source performance and fault management framework. Versions 1.2.30 and prior are vulnerable to Reflected XSS via tab parameter in the auth_profile.php JavaScript context. This issue has been fixed in version 1.2.31.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
This is a reflected XSS vulnerability (CWE-79) residing in the auth_profile.php authentication profile page. The 'tab' parameter is passed to a JavaScript context without proper sanitization or output encoding, allowing an attacker to inject arbitrary JavaScript that runs in the victim's browser with the same privileges as the authenticated session. The CVSS 3.1 score of 6.1 reflects the network-accessible nature, lack of authentication requirement (though social engineering is needed), cross-site scope, and the ability to compromise confidentiality and integrity. The vulnerability does not affect availability or require complex attack conditions.
Business impact
Compromise of user sessions in Cacti environments can lead to unauthorized access to network monitoring data, modification of monitored metrics or thresholds, or pivoting to monitored infrastructure. For organizations using Cacti to monitor critical systems, an attacker exploiting this vulnerability could gain visibility into network topology, performance baselines, and security posture before launching a larger attack. Additionally, if Cacti is integrated with other management platforms via API or shared credentials, the risk extends beyond monitoring visibility.
Affected systems
Cacti versions 1.2.30 and prior are affected. This includes all stable and legacy releases up to and including 1.2.30. The vulnerability is present whenever auth_profile.php is accessible and processes untrusted user input in the 'tab' parameter without sanitization.
Exploitability
Exploitation requires tricking a Cacti user into clicking a specially crafted link containing JavaScript payload in the 'tab' parameter. No authentication bypass is needed, and the attack is trivial to execute technically—constructing the malicious URL is straightforward. However, successful exploitation depends on social engineering; the attacker must convince a victim to visit the link while logged into Cacti. The attack surface is broad if Cacti is internet-facing or accessible to untrusted users, but limited if access is restricted to internal networks or VPN-only.
Remediation
Upgrade Cacti to version 1.2.31 or later, which patches the vulnerability by properly sanitizing and encoding the 'tab' parameter before use in JavaScript context. Organizations should prioritize this upgrade for any Cacti deployments accessible to users outside their direct control or for systems monitoring sensitive infrastructure. Verify patch application by checking the version string and testing that the 'tab' parameter no longer executes arbitrary JavaScript.
Patch guidance
Apply Cacti version 1.2.31 or any subsequent release. Before upgrading, back up your Cacti database and configuration files (typically in /etc/cacti and the MySQL/MariaDB database). Download the patch from the official Cacti repository or release page, verify integrity using available checksums, and test in a non-production environment if possible. After upgrading, clear browser caches to ensure old versions of JavaScript are not served. Verify the fix by attempting to inject a simple test payload (e.g., tab=<img src=x>) and confirming it renders harmlessly rather than executing.
Detection guidance
Monitor web server access logs for suspicious patterns in the 'tab' parameter of auth_profile.php requests, such as encoded script tags, event handlers, or unusual characters. Look for requests containing strings like '%3Cscript%3E', 'onerror=', 'onload=', or similar XSS patterns. Implement a Web Application Firewall (WAF) rule to block requests to auth_profile.php with script-like payloads in query parameters. Monitor application logs for JavaScript errors or warnings if Cacti logs such events. Correlate access logs with user sessions to identify whether any payloads were successfully injected and executed.
Why prioritize this
While the CVSS score is MEDIUM (6.1), the ease of exploitation via social engineering and the potential for attackers to pivot from compromised monitoring visibility into monitored infrastructure elevate practical risk. Organizations with internet-facing or multi-tenant Cacti deployments should treat this as higher priority. However, isolated internal deployments with limited user access carry lower risk and can be scheduled into normal patch cycles.
Risk score, explained
The CVSS 3.1 score of 6.1 (MEDIUM) reflects: network-based attack vector (AV:N), low attack complexity (AC:L), no authentication requirement (PR:N), and required user interaction (UI:R) to click a malicious link. The impact is limited to confidentiality and integrity (C:L, I:L) with no availability impact (A:N), and the vulnerability changes scope (S:C) because JavaScript executes in the browser context. The score does not account for social engineering difficulty or the specific risk context of monitoring infrastructure compromise, which may warrant higher severity in certain organizational contexts.
Frequently asked questions
Can this vulnerability be exploited without user interaction?
No. The vulnerability is reflected XSS, meaning the attacker must trick the victim into clicking or visiting a malicious link. There is no stored payload or automatic execution; user interaction is a required element of the attack chain.
Does this vulnerability require authentication to Cacti?
No authentication bypass is needed. The attacker simply crafts a malicious URL and sends it to a Cacti user. However, the victim must already be logged into Cacti (or the payload executes with their privileges if they then log in) for the attack to have meaningful impact.
What versions of Cacti are affected?
All versions 1.2.30 and earlier are vulnerable. The fix is in version 1.2.31 and all subsequent releases. If you are running 1.2.30 or older, you should upgrade immediately.
If we're behind a firewall and Cacti is internal-only, do we need to patch?
Even internal users can be socially engineered or compromised. Patching remains best practice. However, if Cacti access is limited to a small, trusted group and you have strong email filtering and user training, the risk is lower than for internet-facing deployments. Evaluate based on your threat model, but do not skip patching indefinitely.
This analysis is based on the official CVE-2026-39900 disclosure and vendor advisories. Patch version numbers and remediation steps should be verified against the official Cacti project repository and security announcements. SEC.co does not warrant the completeness or accuracy of this analysis and recommends consulting vendor documentation and your own threat assessment before making remediation decisions. No exploit code or weaponized proof-of-concept is provided herein. Source: NVD (public-domain), retrieved 2026-08-02. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-39897MEDIUMReflected XSS in Cacti html_auth_footer (v1.2.30 and Earlier)
- CVE-2016-20070MEDIUMPrivilege Escalation & Stored XSS in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2018-25384MEDIUMStored XSS in Wikidforum 2.20 Allows Authenticated Attackers to Inject Malicious Scripts
- CVE-2019-25731MEDIUMStored XSS in Zuz Music 2.1 Contact Form
- CVE-2019-25737MEDIUMStored XSS in Live Chat Unlimited 2.8.3 – Admin Session Compromise
- CVE-2019-25739MEDIUMGigToDo 1.3 Stored XSS Vulnerability in Proposal Descriptions
- CVE-2019-25742MEDIUMStored XSS in Zoner Real Estate WordPress Theme 4.1.1 – Admin Account Compromise Risk
- CVE-2019-25743MEDIUMWordPress Soliloquy Lite 2.5.6 Stored XSS Vulnerability