Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft recipe JSON with malicious icon payload
-
DeliveryShare recipe via file, URL, or paste
-
ExploitVictim imports recipe in Settings
-
Executiononerror handler executes in TeXlyre origin
-
ImpactExfiltrate IndexedDB projects and Git tokens
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 victim to actively import an attacker-supplied LSP/typesetter recipe through Settings → Import (file upload, URL fetch, or pasted JSON) where the recipe's free-form 'icon' field carries HTML/JavaScript such as an event handler; the payload executes when the tool-settings card is rendered and persists in the user's stored settings. It is scoped to the direct import path only - the real-time collaboration/awareness share path is NOT exploitable because it deletes the 'icon' field during canonicalization. Affected versions are 0.11.0 through 0.13.4 (fixed in 0.13.5). The decisive limiting factor is the required user interaction: the attack cannot fire without the user choosing to import a malicious recipe, so it depends on social engineering around TeXlyre's recipe-sharing feature rather than unattended remote triggering. |
| Impact | This is a moderate, conditional risk rather than an urgent one. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N, base 5.3) shows an unauthenticated (PR:N), low-complexity network vector gated by required user interaction (UI:P) - the victim must deliberately import an attacker-supplied recipe, which is the single most important limiting factor. No EPSS score and no CISA KEV status were provided; absence of these is not itself evidence of safety, but there is no signal of active exploitation. The GHSA advisory supplies a detailed manual reproduction plus an automated Jest/jsdom test, so working exploit detail is public even though the input does not carry an explicit 'POC: Publicly available (confirmed)' flag. The vuln.today decision label is 'this_month', consistent with a real-but-not-emergency priority. Note a tension worth flagging: the assigned CVSS impacts are Low (VC:L/VI:L), yet the vendor describes the real consequence as High - reading/exfiltrating all IndexedDB project documents and reaching in-memory Git backup tokens (GitHub/GitLab/Gitea/Codeberg), which can escalate to repository compromise. If those tokens are present, actual confidentiality/integrity impact is understated by the Low rating. Overall: a genuine stored-XSS issue worth patching this cycle, but its spread depends entirely on social engineering (getting a user to import a malicious recipe) rather than mass, unattended exploitation. |
| Exploit ScenarioDerived | An attacker publishes or shares an LSP/typesetter recipe JSON whose 'icon' field contains an HTML event handler (e.g. an <img src=x onerror=...> payload) and persuades a TeXlyre user to import it via Settings → Import (file, URL, or pasted JSON). When the tool-settings card renders the recipe, the icon is written with dangerouslySetInnerHTML and the script executes in the TeXlyre origin, re-firing each time settings are shown. A public proof of concept exists in the GHSA advisory (both a manual reproduction and an automated Jest test); it is not independently verified as working exploit code here, but it is detailed and demonstrates the sink firing. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Stored cross-site scripting in TeXlyre 0.11.0 through 0.13.4 lets an attacker run arbitrary JavaScript in the TeXlyre origin by supplying a malicious LSP or typesetter recipe whose free-form 'icon' field carries an HTML event handler such as <img onerror=...>; the payload is stored in the user's settings and re-executes each time the tool-settings card is rendered. Exploitation requires the victim to actively import the recipe via Settings → Import (file, URL, or pasted JSON), so the attack depends on social engineering around TeXlyre's recipe-sharing feature rather than unattended remote triggering. A public PoC reference exists in the vendor advisory; it is not verified as working exploit code, the issue is not listed in CISA KEV, and success yields read/exfiltration of IndexedDB-stored project documents plus access to in-memory decrypted Git backup tokens.
RemediationAI
Upgrade TeXlyre to 0.13.5 or later, which is the vendor-released fixed version; the fix commit is https://github.com/TeXlyre/texlyre/commit/92b50ca050af8473f0fd51a048a7e1d60dcdb2dc and introduces dompurify ^3.4.17 plus the version bump from 0.13.4 to 0.13.5. Patch availability is confirmed by the vendor (GitHub advisory GHSA-gg75-v533-34cq, https://github.com/TeXlyre/texlyre/security/advisories/GHSA-gg75-v533-34cq), and VulnCheck tracks the same issue at https://www.vulncheck.com/advisories/texlyre-from-0.11.0-before-0.13.5-stored-xss-via-recipe-icon-import. Until upgrading, the exposure is confined to the direct import path (Settings → Import via file, URL, or pasted JSON), so the actionable interim control is to refuse LSP/typesetter recipes from untrusted or third-party sources and to review or strip the 'icon' field before importing; the trade-off is loss of icon rendering for shared recipes. Users of the real-time collaboration/awareness sharing feature do not need additional mitigation for this issue since that path already deletes the icon during canonicalization, and clearing previously imported untrusted recipes from stored settings removes persisted payloads that would otherwise re-fire when the tool-settings card is displayed.
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
The flaw is CWE-79 cross-site scripting arising from an unsanitized trust boundary in TeXlyre's recipe import pipeline. Recipe JSON is parsed in src/components/settings/ToolConfigImport.tsx (applyText: JSON.parse → kind.normalize → onImport), then normalizeLspConfig in src/utils/toolConfigUtils.ts:523 passes the 'icon' string through verbatim. That attacker-controlled string reaches the HTML sink dangerouslySetInnerHTML in src/components/settings/ToolConfigCards.tsx:174, which the codebase treats as a trusted pre-rendered SVG, so no escaping or allowlist exists between JSON.parse and the DOM. The type definition in src/types/lsp.ts:100 declares icon?: string. Notably, the real-time collaboration/awareness share path is not affected because canonicalization in src/utils/sharedToolsUtils.ts:216 deletes the icon field (delete shared.icon); only the direct file/URL/paste import path is exploitable. The trigger mechanism is the rendering of the imported settings card rather than any race, timing, or memory-safety condition. The 0.13.5 fix commit adds dompurify ^3.4.17 alongside version bumps, moving toward sanitizing rendered HTML; the advisory's simplest suggested alternative is to drop the icon field during normalizeLspConfig, mirroring the collaboration path.
Know when Texlyre 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
Attacker needs no account (PR:N) but the victim must deliberately import the recipe (UI:R); the stored script escaping the component into the origin justifies S:C, with low confidentiality/integrity impact and no availability effect.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
TeXlyre from 0.11.0 before 0.13.5 contains a stored cross-site scripting vulnerability that allows attackers to execute script by supplying malicious LSP or typesetter recipe icons. Attackers can trick victims into importing a recipe whose icon contains an HTML event handler, persistently accessing local projects and repository credentials.
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.
EUVD-2026-116036
GHSA-wq84-cxfr-wg2c
NVD
CVE.org
Exploit-DB