CVE-2026-115513: OpenCATS: stored XSS in MRU panel enables admin takeover
HIGHOpenCATS, an open-source applicant tracking system, has a stored cross-site scripting flaw: any low-privileged user can plant JavaScript in a record name (Candidate, Company, Contact, Job Order or List) that is rendered unescaped in the 'Recent' navigation panel on nearly every page. When another user, including a Site Administrator, loads a page, the script runs in their session, enabling session theft and escalation to full administrative control (CVSS 8.7, scope changed). This is not an AI/ML product: the AI classification is weak and we found no linked AI package, no dependents data, and no AI-specific attack surface, so treat it as a general web application risk. Exploitation is low-complexity but needs authenticated access and a victim page view; there is no CISA KEV listing, no public exploit, no Nuclei template, and no EPSS score available yet. Upgrade to OpenCATS 0.12.0 or later, and if you run recruiting tooling alongside AI-assisted screening or HR automation, review that the instance's admin accounts and integrations cannot be abused for lateral movement.
What is the risk?
High severity on paper (CVSS 8.7), but practical risk is moderate. The attacker needs a valid low-privilege account and a victim must view a page, which limits mass exploitation. The scope change and the admin-takeover path raise the impact for internally hosted or internet-exposed instances. There is no KEV listing, public exploit or scanner template, and EPSS is unavailable. The AI/ML relevance is minimal: OpenCATS is a recruiting ATS, and the 'ml_ui' category appears to be a loose fit.
How does the attack unfold?
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade to OpenCATS 0.12.0 or later, which includes the fix in lib/MRU.php (commit f82e0ee). 2) Until patched, restrict account creation and limit who can create or rename records, and review existing record names for HTML/script content such as '<script', 'onerror=' or 'javascript:'. 3) Apply a strict Content-Security-Policy that blocks inline scripts, and set HttpOnly and SameSite flags on session cookies. 4) Require MFA or network restrictions for administrator access where possible. 5) Hunt in logs and the database for suspicious record titles and unexpected admin-privilege changes. 6) Rotate admin sessions and credentials if suspicious content is found.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-115513?
OpenCATS, an open-source applicant tracking system, has a stored cross-site scripting flaw: any low-privileged user can plant JavaScript in a record name (Candidate, Company, Contact, Job Order or List) that is rendered unescaped in the 'Recent' navigation panel on nearly every page. When another user, including a Site Administrator, loads a page, the script runs in their session, enabling session theft and escalation to full administrative control (CVSS 8.7, scope changed). This is not an AI/ML product: the AI classification is weak and we found no linked AI package, no dependents data, and no AI-specific attack surface, so treat it as a general web application risk. Exploitation is low-complexity but needs authenticated access and a victim page view; there is no CISA KEV listing, no public exploit, no Nuclei template, and no EPSS score available yet. Upgrade to OpenCATS 0.12.0 or later, and if you run recruiting tooling alongside AI-assisted screening or HR automation, review that the instance's admin accounts and integrations cannot be abused for lateral movement.
Is CVE-2026-115513 actively exploited?
No confirmed active exploitation of CVE-2026-115513 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-115513?
1) Upgrade to OpenCATS 0.12.0 or later, which includes the fix in lib/MRU.php (commit f82e0ee). 2) Until patched, restrict account creation and limit who can create or rename records, and review existing record names for HTML/script content such as '<script', 'onerror=' or 'javascript:'. 3) Apply a strict Content-Security-Policy that blocks inline scripts, and set HttpOnly and SameSite flags on session cookies. 4) Require MFA or network restrictions for administrator access where possible. 5) Hunt in logs and the database for suspicious record titles and unexpected admin-privilege changes. 6) Rotate admin sessions and credentials if suspicious content is found.
What systems are affected by CVE-2026-115513?
This vulnerability affects the following AI/ML architecture patterns: Web applications with ATS/HR workflows, AI-assisted recruiting integrations.
What is the CVSS score for CVE-2026-115513?
CVE-2026-115513 has a CVSS v3.1 base score of 8.7 (HIGH). The EPSS exploitation probability is 0.30%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012Valid AccountsAML.T0049Exploit Public-Facing ApplicationCompliance Controls Affected
What are the technical details?
Original Advisory
OpenCATS before 0.12.0 contains a stored cross-site scripting vulnerability that allows a low-privileged authenticated user to inject HTML/JavaScript payloads by setting a Candidate, Company, Contact, Job Order, or List name/title field, which is stored unsanitized and later rendered unescaped in the 'Recent' (MRU) navigation panel displayed on nearly every page via lib/MRU.php's getFormatted() function. Attackers can exploit this by crafting a malicious record name that executes arbitrary JavaScript in the session of any other user, including Site Administrators, who views the record, enabling session/cookie theft and privilege escalation to full administrative control.
Exploitation Scenario
A low-privileged user, such as a recruiter, a compromised account or a self-registered user, creates a Candidate or Company whose name contains an HTML/JavaScript payload. The server stores it, and the MRU 'Recent' panel renders it unescaped on subsequent pages. When a Site Administrator opens any page that shows the panel, the payload runs in their browser session, exfiltrates the session cookie or performs administrative actions such as creating an admin account. The attacker then gains full control and can export candidate data, which could also be used to poison or harvest data feeding downstream AI screening tools.
Weaknesses (CWE)
CWE-79Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')PrimaryCWE-79Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')CWE-79 — Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'): The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
- [Architecture and Design] Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482]. Examples of libraries and frameworks that make it easier to generate properly encoded output include Microsoft's Anti-XSS library, the OWASP ESAPI Encoding module, and Apache Wicket.
- [Implementation, Architecture and Design] Understand the context in which your data will be used and the encoding that will be expected. This is especially important when transmitting data between different components, or when generating outputs that can contain multiple encodings at the same time, such as web pages or multi-part mail messages. Study all expected communication protocols and data representations to determine the required encoding strategies. For any data that will be output to another web page, especially any data that was received from external inputs, use the appropriate encoding on all non-alphanumeric characters. Parts of the same output document may require different encodings, which will vary depending on whether the output is in the: etc. Note that HTML Entity Encoding is only appropriate for the HTML body. Consult the XSS Prevention Cheat Sheet [REF-724] for more details on the types of encoding and escaping that are needed. HTML body Element attributes (such as src="XYZ") URIs JavaScript sections Casca
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:NReferences
Timeline
Related Vulnerabilities
CVE-2025-512010.0smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Data LeakageCVE-2023-376510.0MLflow: path traversal allows arbitrary file read
Same attack type: Data LeakageCVE-2025-282810.0LangChain RequestsToolkit: SSRF exposes cloud metadata
Same attack type: Auth BypassCVE-2025-5376710.0Azure OpenAI: SSRF EoP, no auth required (CVSS 10)
Same attack type: Auth BypassCVE-2026-2185810.0n8n: Input Validation flaw enables exploitation
Same attack type: Auth Bypass