Skip to main content

Trilium CVE-2026-53579

| EUVDEUVD-2026-67224 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. Recon
    Craft archive with malicious 'book' note
  2. Delivery
    Deliver as shared template or backup
  3. Exploit
    Victim imports with Safe import on
  4. Install
    Book payload bypasses sanitizer and is stored
  5. C2
    Victim opens note, grid card renders via jQuery html()
  6. Execute
    Script runs in Electron renderer
  7. Impact
    require('child_process').exec() yields RCE

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 that the victim (1) runs a vulnerable Trilium build (<= 0.103.0), (2) imports an attacker-supplied note archive containing a note of type 'book' with a malicious text/html body - the book note type is the exact feature that bypasses the Safe import sanitizer - and (3) opens the containing note so the book note renders as a grid/list-view preview card, which invokes the jQuery .html() sink. Safe import being enabled (the default) does NOT prevent this for book notes. Limiting factors: mandatory user interaction (importing plus opening the note), reliance on social engineering to deliver the archive, and escalation to full RCE specifically requiring the desktop Electron client with Node integration enabled - on the browser/server client impact is confined to XSS within the app's web context.

Impact

The vendor CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H, 9.3 Critical) reflects a local attack vector gated by active user interaction (the victim must import a crafted archive and open the note) but with maximal confidentiality/integrity/availability impact on both the vulnerable and subsequent system - consistent with XSS-to-RCE via Node integration. Real-world risk hinges on social engineering: an attacker must convince a victim to import a malicious note archive, which limits mass exploitation but is plausible in note-sharing/template workflows. There is no CISA KEV listing and no EPSS score was supplied, so there is no evidence of active or widespread exploitation; this is a high-impact but interaction-dependent issue rather than a wormable network flaw. SSVC-style read: exploitation is not automatable (requires user action) while technical impact is total. Treat as a high priority for desktop users who import third-party content.

Exploit ScenarioDerived

An attacker crafts a Trilium export archive containing a note declared as type 'book' whose HTML body includes an event-handler payload such as <img src=x onerror="require('child_process').exec('calc')">, then shares it as a helpful template or backup. The victim imports it with default Safe import enabled and opens the containing note; the book note renders as a grid-view preview card, the payload fires via jQuery .html(), and on the desktop client the Node-enabled renderer executes arbitrary OS commands. The fix commit's regression test embeds exactly this payload, but no independent weaponized POC has been published.

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 versions up to and including 0.103.0, where the default-on "Safe import" filter sanitizes HTML for text notes but omits the 'book' note type. Because book-note content is rendered through the same HTML path as text notes and injected via jQuery's html() in grid-view preview cards, an attacker-supplied import archive can smuggle an executable payload past sanitization; on the Electron desktop client with Node integration enabled this becomes full RCE. No public exploit identified at time of analysis, though the upstream fix commit ships a proof-style test payload, and it is not listed in CISA KEV.

RemediationAI

Vendor-released patch: upgrade to Trilium 0.104.0, which extends Safe-import HTML sanitization to cover the 'book' note type in addition to 'text' (see GHSA-h7w4-cjfg-cvj8 and commit abb01f09b3ad7792bd3d42a973730c99a062a808). Until patched, do not import note archives from untrusted or unverified sources, since Safe import does not protect against this vector for book notes - the trade-off is losing the ability to ingest third-party content and templates. Prefer the web/server client over the desktop Electron client for handling untrusted imports to avoid the Node-integration RCE escalation, accepting that stored XSS in the browser context can still occur. Advisory URL: https://github.com/TriliumNext/Trilium/security/advisories/GHSA-h7w4-cjfg-cvj8.

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

The root cause is CWE-79 (improper neutralization of input during web page generation). Trilium's importer (packages/trilium-core/src/services/import/zip.ts) applied Safe-import HTML sanitization only when the note type equaled "text", leaving "book" notes stored verbatim. The content_renderer routes book notes through the same renderText() path as text notes and injects the result with jQuery .html() when rendering a grid/list preview card, so unsanitized markup becomes live DOM. In the desktop build Trilium runs as an Electron renderer with Node integration enabled, so injected event-handler/script JavaScript can reach Node APIs such as require('child_process').exec(), turning DOM-based XSS into arbitrary OS command execution. The single affected package is cpe:2.3:a:triliumnext:trilium.

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

Payload delivered via imported file (AV:L) requiring victim import-and-open (UI:R); no app privileges needed (PR:N); XSS escapes to the OS through Node integration (S:C) with full C/I/A impact.

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:33 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 book note type, whose content is stored without sanitization and later rendered as HTML, allowing an attacker-supplied import archive to embed a payload that executes as script. A book note's content is routed through the same rendering path as text notes and injected into the page with jQuery's html method when the note is shown as a grid-view preview card, so a malicious note survives Safe import and runs as soon as the victim opens the containing note. 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 up to 0.103.0 contain a stored cross-site scripting vulnerability that escalates to remote code execution on the Electron desktop client; no public exploit has been identified at time of analysis. Attackers can execute arbitrary code through malicious import archives if the target system has Node integration enabled, creating complete system compromise risk. Organizations using Trilium for notes management should prioritize immediate mitigation while monitoring for active exploitation attempts.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable Node integration in Electron configuration; restrict import functionality to trusted administrators only; establish monitoring for suspicious file system and process activity following import operations; run Trilium in a containerized or sandboxed environment with limited host access; require manual review before processing any import archives; maintain offline backups of critical note data to prevent loss from potential system compromise.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Low
niche open-source personal note-taking app, limited 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
None
System Exposure· derived
Small
Automatable
No
Human Impact
Very High
Technical Impact
Total

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-53578 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-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