Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain or compromise manager-role credentials
-
DeliveryPOST crafted XSS payload to /api/admin/system-preferences
-
ExploitMetaGenerator stores and renders unescaped value in homepage HTML
-
ExecutionAdministrator visits homepage, injected script executes
-
PersistExfiltrate administrator JWT to attacker-controlled endpoint
-
ImpactAuthenticate as administrator via stolen JWT to create API keys or modify data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a valid manager-role account on the target AnythingLLM instance; the manager role is a built-in privilege tier below full administrator. No non-default configuration is needed: the /api/admin/system-preferences endpoint accepting meta_page_title and meta_page_favicon is present in all default installations through version 1.16.1. The stored payload executes only when an administrator visits the root homepage (/), which is a low-friction condition under normal usage. Limiting factors are: (1) attacker must possess or compromise a manager-role credential (PR:H gate); (2) an administrator must load the homepage in a browser after the payload is planted - passive social engineering at most, since admins routinely access the homepage; (3) impact is limited to the authenticated administrator's session context and what the JavaScript can reach from the browser (primarily the stored JWT). Unauthenticated external attackers without manager credentials cannot trigger this vulnerability. |
| Impact | The provided CVSS base score of 5.5 (AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N) materially understates the real-world impact in two respects. First, the C:L and I:L ratings do not reflect the actual post-exploitation outcome: successful execution of the payload yields a full administrator JWT, enabling complete instance takeover - all data access, user deletion, and persistent API key creation. Second, UI:N is inconsistent with stored XSS that requires a victim (the administrator) to visit the homepage before the script fires; UI:R is the correct label for this pattern. The PR:H requirement - a valid manager account - is the meaningful gate and genuinely limits the attack surface to partially trusted internal users rather than anonymous adversaries. In deployments where the manager role is assigned to third parties or less-trusted staff, this is a meaningful privilege escalation path. No EPSS data, CISA KEV listing, or public exploit code has been identified, keeping real-world urgency moderate despite high theoretical post-exploitation impact. The absence of a released patched version increases residual risk. |
| Exploit ScenarioDerived | A manager-role user - whether a compromised account or a malicious insider - submits a POST to /api/admin/system-preferences setting meta_page_title to a value such as |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 10, 2026
Stored XSS in AnythingLLM 1.16.1 and earlier enables a manager-role user to inject arbitrary JavaScript into the application homepage by writing a malicious meta_page_title or meta_page_favicon value via /api/admin/system-preferences - MetaGenerator renders those values into page HTML without any HTML entity encoding. When an administrator visits the homepage, the injected script executes in their browser session and can exfiltrate the administrator JWT token. With the stolen JWT, the attacker escalates fully to administrator level, gaining the ability to create API keys, read or alter all workspace and chat data, delete users, and execute any other administrative operation. No fixed release version is available; only an upstream commit patch exists.
RemediationAI
No vendor-released patched version has been confirmed at the time of analysis - only upstream commit 6dff9d71ab585e87a3145a48abc63c2b60151149 (https://github.com/Mintplex-Labs/anything-llm/commit/6dff9d71ab585e87a3145a48abc63c2b60151149) is available. Organizations should monitor GHSA-rh3m-xv7m-9jhf for a tagged release and upgrade immediately upon availability. As interim compensating controls: (1) Restrict the manager role to fully trusted internal users only, since manager-role access is the prerequisite for planting the payload - note this may impair legitimate delegation workflows. (2) Implement a Content Security Policy (CSP) header on the AnythingLLM server that blocks inline script execution; this directly mitigates the XSS vector but requires testing against any legitimate inline scripts the application uses. (3) Network-isolate the AnythingLLM instance so that exfiltration to external attacker infrastructure requires an additional step, reducing the value of the stolen JWT to within-network abuse only.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
AnythingLLM (CPE: cpe:2.3:a:mintplex-labs:anything-llm) is a Node.js-based open-source LLM application platform that allows operators to ingest documents and expose them as retrieval-augmented chat contexts. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS): manager-role users post to /api/admin/system-preferences, which is handled by server/endpoints/admin.js. Those values transit server/models/systemSettings.js without sanitization and reach MetaGenerator.generate() in server/index.js, where the private #assembleMeta() method in server/utils/boot/MetaGenerator.js concatenates them directly into HTML using template literals such as ${key}="${value}" and >${tag.content}</${tag.tag}>. No encoding is applied to attribute values or text content, permitting quote-breakout and script-tag injection. The upstream fix (commit 6dff9d71) introduces a private #escapeHtml() method that replaces &, <, >, ", and ' with their HTML entities before any interpolation.
Know when Anything Llm gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N
Manager-role credential required (PR:H); admin must visit homepage for payload to fire (UI:R); full JWT theft yields complete admin takeover warranting C:H/I:H with scope change.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
AnythingLLM is an application that turns pieces of content into context that any LLM can use as references during chatting. In 1.16.1 and earlier, the manager role can store meta_page_title or meta_page_favicon through /api/admin/system-preferences, and MetaGenerator inserts those values into production homepage HTML without escaping attribute values or text content. The values pass unchanged through server/models/systemSettings.js and reach MetaGenerator.generate() in server/index.js. #assembleMeta() in server/utils/boot/MetaGenerator.js concatenates the stored values into HTML. When an administrator visits the homepage /, injected JavaScript can read the administrator JWT and use it to create API keys, access or modify workspace and chat data, delete users, and perform other administrator actions. server/endpoints/admin.js accepts the manager-controlled settings before server/models/systemSettings.js returns them unchanged. No fixed version is available as of this review.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Anything Llm
View allSQL Injection in GitHub repository mintplex-labs/anything-llm prior to 0.0.1. Rated high severity (CVSS 8.8), this vulne
Authentication Bypass by Primary Weakness in GitHub repository mintplex-labs/anything-llm prior to 0.0.1. Rated high sev
XSS in AnythingLLM 1.11.1 and earlier.
Argument-injection command execution in Mintplex Labs AnythingLLM before 1.13.0 lets an attacker who can chat with an ag
SQL injection in AnythingLLM versions 1.11.1 and earlier enables authenticated users to execute arbitrary SQL commands a
AnythingLLM versions 1.11.1 and earlier contain an authentication bypass vulnerability on default installations where th
Stored DOM-level XSS in AnythingLLM's chart caption rendering allows authenticated users in shared workspaces to inject
Path traversal in AnythingLLM's document folder listing endpoint on Windows allows authenticated low-privilege users to
Stale mobile device tokens in AnythingLLM survive single-user to multi-user mode migration with a null userId, allowing
The text-to-speech endpoint in AnythingLLM prior to v1.12.1 exposes an Insecure Direct Object Reference (IDOR) allowing
AnythingLLM versions 1.11.1 and earlier contain a Zip Slip path traversal vulnerability in the community plugin import f
AnythingLLM is an application that turns pieces of content into context that any LLM can use as references during chatti
EUVD-2026-75642
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB