Skip to main content

TeXlyre EUVDEUVD-2026-116036

| CVE-2026-121588 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-11-03 VulnCheck GHSA-wq84-cxfr-wg2c
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft recipe JSON with malicious icon payload
  2. Delivery
    Share recipe via file, URL, or paste
  3. Exploit
    Victim imports recipe in Settings
  4. Execution
    onerror handler executes in TeXlyre origin
  5. Impact
    Exfiltrate 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

texlyre 0.11.0 <0.13.5

Affected Packages

euvd texlyre fix: 0.13.5

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

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
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
vuln.today AI 6.1 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

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

Prevalence
Rare
obscure open-source browser-based LaTeX editor, tiny real-world footprint
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy