Skip to main content

Trilium CVE-2026-53578

| EUVDEUVD-2026-67223 CRITICAL
Cross-site Scripting (XSS) (CWE-79)
2026-08-27 GitHub_M
9.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Craft mindMap note with dangerouslySetInnerHTML payload
  2. Delivery
    Deliver import archive to victim
  3. Exploit
    Victim imports, Safe Import skips mindMap
  4. Execution
    Victim opens map, innerHTML injection
  5. Persist
    Script runs via Node integration
  6. Impact
    Arbitrary code execution on desktop

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 the victim to import an attacker-supplied note archive and then open the malicious mindMap note - user interaction is mandatory (UI:A) and the vector is local file delivery (AV:L), not remote unauthenticated network access. The specific prerequisite is a note of type mindMap carrying a dangerouslySetInnerHTML property in its JSON, which the default-on Safe Import filter does not sanitize (it sanitizes only type === "text" notes) in versions up to and including 0.103.0. Escalation from XSS to full remote code execution is limited to the desktop Electron client, where Node integration is enabled in the renderer; on the server/web client the impact is confined to stored XSS. Limiting factors: the attacker cannot trigger this without the victim actively importing the file and opening the map, and patched builds (0.104.0+) neutralize the payload.

Impact

The vendor CVSS 4.0 score of 9.3 (Critical) reflects high confidentiality, integrity, and availability impact with a scope change, but the vector's realistic gating factors matter: AV:L and UI:A mean the attacker cannot reach a victim over the network unprompted - the malicious archive must be delivered and the victim must actively import it and then open the specific mind map note. There is no CISA KEV listing and no public proof-of-concept beyond the vendor's own regression test, so this is not evidence of active or widespread exploitation; the signal is a confirmed, high-impact bug rather than an observed campaign. That said, the RCE-on-open behavior on desktop, the near-zero complexity once the file is opened, and the social-engineering ease of "here's a note pack to import" make patching genuinely urgent for anyone running the Electron desktop client. Any operator or self-hosting team that lets users exchange import archives should treat this as high priority and upgrade promptly rather than relying on user caution.

Exploit ScenarioDerived

An attacker crafts a Trilium export/import archive containing a mindMap note whose JSON includes a dangerouslySetInnerHTML value such as an img tag with an onerror handler calling require('child_process').exec. They send it to a victim as a shared "note pack," and because Safe Import skips mindMap notes the payload is stored intact; the moment the victim opens that mind map, Mind Elixir writes the markup to innerHTML and, on the Electron desktop client, the script runs with Node privileges to execute arbitrary commands. No public exploit is identified, but the vendor's regression test demonstrates exactly this vector.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 27, 2026

Stored cross-site scripting escalating to remote code execution affects TriliumNext Trilium through version 0.103.0, where the default-on "Safe import" filter sanitizes HTML only for text notes and skips the mindMap note type entirely. An attacker who gets a victim to import a crafted note archive can embed a dangerouslySetInnerHTML payload in the mind map's unsanitized JSON, which Mind Elixir assigns directly to a node's innerHTML when the map is opened; on the Electron desktop client, Node integration turns that XSS into full RCE. No public exploit has been identified at time of analysis, and it is not listed in CISA KEV; the issue is fixed in version 0.104.0.

RemediationAI

Vendor-released patch: upgrade to Trilium 0.104.0, which adds sanitizeMindMapData to recursively run every dangerouslySetInnerHTML value through the same DOMPurify sanitizer used for text notes before rendering (see GHSA-rj57-j38v-3577 and commit 15da3ff626c21fbadbc980ebb39e2f97085503a4). Until you can upgrade, do not import note archives from untrusted or unverified sources, since Safe Import does not protect mindMap notes in affected versions, and avoid opening mind map notes originating from imported third-party archives. On the desktop client the impact is worst because the Electron renderer runs with Node integration; if you must run an unpatched build, treating all imports as untrusted and preferring the web/server client (where the impact is limited to XSS rather than RCE) reduces blast radius, at the cost of desktop convenience. These are stopgaps only - the upgrade is the real fix.

Affected VersionsENISA

Trilium < 0.104.0

Affected Packages

euvd trilium fix: 0.104.0

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

Trilium is a hierarchical note-taking application; mind map notes are rendered client-side by the Mind Elixir library. Per the vendor's own fix commit (15da3ff), Mind Elixir nodes support an undocumented dangerouslySetInnerHTML property that the library writes straight to element.innerHTML via its utils/dom.ts helper. The root cause is CWE-79 (improper neutralization of input during web page generation): Trilium's Safe Import routine only runs the DOMPurify sanitizer against notes where type === "text", so mindMap JSON content is persisted verbatim. The affected package is cpe:2.3:a:triliumnext:trilium. The additional severity comes from Trilium's desktop build being an Electron app with Node integration enabled in the renderer, meaning injected script can reach Node APIs such as require('child_process') - the exact vector the added regression test exercises with an onerror="require('child_process').exec('calc')" payload.

Know when Trilium 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 (GitHub_M) PRIMARY 9.3 CRITICAL
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
vuln.today AI 8.6 HIGH

Local archive delivery (AV:L) with mandatory victim import-and-open (UI:R), no auth (PR:N); renderer-to-Node escalation crosses a trust boundary (S:C) yielding full C/I/A impact via RCE on desktop.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Aug 27, 2026 - 22:03 EUVD
CVE Published
Aug 27, 2026 - 19:21 cve.org
CRITICAL 9.3

DescriptionCVE.org

Trilium is an open-source hierarchical note-taking application. In versions up to and including 0.103.0, the default-on "Safe import" filter sanitizes HTML only for text notes and excludes the mindMap note type, whose JSON content is stored without sanitization, allowing an attacker-supplied import archive to embed a payload that renders as arbitrary HTML. A mind map node can carry a dangerouslySetInnerHTML property that the Mind Elixir library assigns directly to a node's innerHTML, so a malicious note survives Safe import and executes script as soon as the victim opens the imported mind map. On the desktop client the Electron renderer runs with Node integration enabled, so the injected JavaScript escalates from cross-site scripting to full remote code execution on the victim's machine. This issue is fixed in version 0.104.0.

Executive ViewAI

Why It Matters

TriliumNext Trilium versions through 0.103.0 contain a critical vulnerability allowing arbitrary code execution on desktop systems when users import untrusted note archives. Attackers can bypass the import sanitization filter through the mind map note type, injecting malicious payloads that execute with full user privileges on Windows, macOS, and Linux endpoints, risking data theft and network compromise.

Business Impact: Severe
Compensating Controls

Apply vendor patch: upgrade to TriliumNext Trilium version 0.104.0.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Low
niche open-source personal note-taking app, minimal enterprise footprint
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
Very High
Technical Impact
Partial

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
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.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2025-68621 HIGH POC
7.4 Feb 06

Trilium Notes is an open-source, cross-platform hierarchical note taking application with focus on building large person

CVE-2022-2290 MEDIUM POC
6.1 Jul 03

Cross-site Scripting (XSS) - Reflected in GitHub repository zadam/trilium prior to 0.52.4, 0.53.1-beta. Rated medium sev

CVE-2023-3067 MEDIUM POC
5.4 Jun 02

Cross-site Scripting (XSS) - Stored in GitHub repository zadam/trilium prior to 0.59.4. Rated medium severity (CVSS 5.4)

CVE-2022-2365 MEDIUM POC
5.4 Jul 10

Cross-site Scripting (XSS) - Stored in GitHub repository zadam/trilium prior to 0.53.3. Rated medium severity (CVSS 5.4)

CVE-2026-53579 CRITICAL
9.3 Aug 27

Stored cross-site scripting escalating to remote code execution affects TriliumNext Trilium versions up to and including

CVE-2026-48996 CRITICAL
9.3 Aug 27

Stored cross-site scripting escalating to remote code execution affects TriliumNext Trilium through version 0.103.0, whe

CVE-2026-45668 CRITICAL
9.3 May 29

Remote code execution in TriliumNext Trilium Notes desktop client prior to 0.102.2 allows attackers to achieve arbitrary

CVE-2026-47727 HIGH
8.6 Aug 27

Remote code execution in Trilium versions prior to 0.104.0 is achievable by exploiting a bypass in the application's Saf

CVE-2026-39310 HIGH
8.6 May 20

Authentication bypass in Trilium Notes Desktop (Electron build) versions 0.102.1 and earlier allows remote unauthenticat

CVE-2026-53580 HIGH
8.1 Aug 27

Arbitrary local file disclosure and denial-of-service exist in Trilium's automatic image-download feature, affecting all

CVE-2026-77438 HIGH
7.5 Aug 27

Unauthenticated content exfiltration in Trilium up to 0.103.0 is possible through the public share-search endpoint, whic

CVE-2026-39311 MEDIUM
6.8 May 20

Stored XSS-to-RCE chain in Trilium Notes versions 0.102.1 and prior allows a network attacker to execute arbitrary Node.

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