Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid authenticated session or ETAPI token
-
DeliveryCraft note HTML with img src='file:///path/to/sensitive/file'
-
ExploitSubmit note via web UI, ETAPI, web clipper, or import
-
ExecutionTrilium image-download service reads local file path
-
PersistFile contents stored as note attachment
-
ImpactDownload attachment to exfiltrate sensitive data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File name/path control
|
| Exploitation Conditions | Exploitation requires a valid authenticated Trilium session or a valid ETAPI token - no unauthenticated or anonymous access path exists. The automatic image-download feature is enabled by default and requires no non-default configuration to be active. The attacker must be able to save or import a note containing an img tag with a file:// src URL, achievable via the web UI editor, ETAPI note creation or update endpoints, the web clipper extension, or the note import function. The targeted file must be readable by the OS user account under which the Trilium server process runs. No Trilium administrative or elevated role is required beyond a standard user session. Exploitation is bounded to files accessible to the server process and does not provide write access or code execution; the availability (DoS) vector requires no specific file target, only an unbounded source such as /dev/zero. |
| Impact | The CVSS 8.1 score (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) is well-supported by the description: the attack requires only a valid authenticated session or ETAPI token, imposes no additional complexity, and produces a dual high-severity impact - confidentiality loss via arbitrary file read and availability loss via server crash. EPSS data is absent from the provided intelligence, so exploitation probability cannot be quantified numerically; however, the attack path is mechanically simple, requires no exploit tooling, and the feature is enabled by default across all pre-0.104.0 installations. No CISA KEV listing is present and no public exploit code has been identified, moderating urgency compared to an actively exploited scenario. Practical risk is highest for multi-user Trilium instances where not all authenticated users are fully trusted, and for deployments where the Trilium process runs with broad filesystem permissions that expose sensitive files such as private keys, credential stores, or database configuration files. The availability vector is particularly disruptive because a single crafted note can crash the server for all users with no privileged access. The four distinct attack surfaces (web UI, ETAPI, web clipper, import) meaningfully increase the likelihood of exploitation in environments that expose any of these endpoints. |
| Exploit ScenarioDerived | An authenticated Trilium user creates a note containing an img tag with src set to file:///etc/ssh/ssh_host_rsa_key or another file readable by the server process. Trilium's image-download service reads the file and stores its contents as a base64-encoded note attachment; the attacker retrieves this attachment through the standard attachment download API, exfiltrating the file without any elevated privileges. In a second scenario, the attacker sets src to file:///dev/zero, causing the server to allocate memory unboundedly until the process crashes, denying service to all Trilium users. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 27, 2026
Arbitrary local file disclosure and denial-of-service exist in Trilium's automatic image-download feature, affecting all versions prior to 0.104.0. Any authenticated user or valid ETAPI token holder can embed file:// scheme URLs in note img tags to cause the server to read and store arbitrary local files - including sensitive system files accessible to the Trilium process - as retrievable note attachments. The same code path, when directed at an unbounded source such as /dev/zero, triggers uncontrolled memory allocation that crashes the server entirely. No public exploit code or CISA KEV listing has been identified at time of analysis.
RemediationAI
Upgrade Trilium to version 0.104.0 or later, which is confirmed as the vendor-released fix per the GitHub security advisory GHSA-3gxr-j6g6-q75c and patch commit c417c901dfe45222c321fab1685f26730cc2068f at https://github.com/TriliumNext/Trilium/commit/c417c901dfe45222c321fab1685f26730cc2068f. If immediate upgrade is not possible, the most effective compensating control is restricting Trilium access to fully trusted users only, since exploitation requires an authenticated session or ETAPI token - revoking or not issuing ETAPI tokens eliminates that attack vector without affecting web UI users. Running the Trilium process under a dedicated low-privilege OS user account with a minimal filesystem permission set limits the files an attacker can read, though it does not eliminate the vulnerability. OS-level sandboxing via AppArmor, seccomp profiles, or container filesystem restrictions can prevent file:// URL resolution; note that such controls may have side effects on other Trilium server functionality and should be tested before production deployment. No method to selectively disable the automatic image-download feature is described in the advisory without a code-level change.
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
Trilium (cpe:2.3:a:triliumnext:trilium:*:*:*:*:*:*:*:*) is a self-hosted hierarchical note-taking application whose server component automatically fetches and stores external image sources referenced in note HTML. The root cause is CWE-73 (External Control of File Name or Path): the HTML sanitizer incorrectly retains the file:// scheme as a permitted URL scheme, so user-supplied img src values such as file:///etc/passwd flow directly into the server's filesystem read routines with no URL scheme allowlist or path boundary enforcement. The fetched content is persisted as a note attachment retrievable via the normal API. No resource limits are applied to the fetch operation, enabling the /dev/zero vector. The vulnerability is reachable through four distinct entry points - the web UI editor, the ETAPI REST interface, the web clipper browser extension, and note import - all converging on the same unvalidated image-download code path, which is active by default.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
Network-reachable via web and API; low privilege (authenticated session required); high confidentiality impact from arbitrary file read; high availability impact from unbounded memory allocation crash; no integrity impact described.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Trilium is an open-source hierarchical note-taking application. In versions prior to 0.104.0, the automatic image-download feature accepts file:// URLs in a note's img tags and reads the referenced local file with no path validation, allowing any authenticated user to disclose arbitrary files readable by the Trilium process. When a text note is saved, Trilium scans its HTML for image sources and downloads each external one; because the HTML sanitizer keeps file as an allowed scheme, a source such as file:///etc/passwd is passed straight to a filesystem read and its contents are stored as a note attachment the user can then retrieve. Pointing the same primitive at an unbounded source such as /dev/zero causes uncontrolled memory allocation that crashes the server process. The feature is enabled by default and is reachable through the web UI, the ETAPI, the web clipper, and note imports, requiring only an authenticated session or an ETAPI token. This issue is fixed in version 0.104.0
Executive ViewAI
Trilium note-taking application contains a high-severity vulnerability in its automatic image-download feature that allows authenticated users to disclose sensitive system files and trigger denial-of-service crashes. No public exploit identified at time of analysis; however, organizations using Trilium face exposure of confidential data and service-availability risk. No patch is currently available, requiring immediate implementation of compensating controls.
Disable the automatic image-download feature to eliminate the primary attack vector; restrict ETAPI token distribution and revoke unnecessary credentials; implement restrictive OS-level file permissions to deny Trilium process access to sensitive system files and credentials; enable detailed authentication event and file-access logging for intrusion detection; implement network segmentation to limit lateral movement if data exfiltration occurs.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Trilium Notes is an open-source, cross-platform hierarchical note taking application with focus on building large person
Cross-site Scripting (XSS) - Reflected in GitHub repository zadam/trilium prior to 0.52.4, 0.53.1-beta. Rated medium sev
Cross-site Scripting (XSS) - Stored in GitHub repository zadam/trilium prior to 0.59.4. Rated medium severity (CVSS 5.4)
Cross-site Scripting (XSS) - Stored in GitHub repository zadam/trilium prior to 0.53.3. Rated medium severity (CVSS 5.4)
Stored cross-site scripting escalating to remote code execution affects TriliumNext Trilium versions up to and including
Stored cross-site scripting escalating to remote code execution affects TriliumNext Trilium through version 0.103.0, whe
Stored cross-site scripting escalating to remote code execution affects TriliumNext Trilium through version 0.103.0, whe
Remote code execution in TriliumNext Trilium Notes desktop client prior to 0.102.2 allows attackers to achieve arbitrary
Remote code execution in Trilium versions prior to 0.104.0 is achievable by exploiting a bypass in the application's Saf
Authentication bypass in Trilium Notes Desktop (Electron build) versions 0.102.1 and earlier allows remote unauthenticat
Unauthenticated content exfiltration in Trilium up to 0.103.0 is possible through the public share-search endpoint, whic
Stored XSS-to-RCE chain in Trilium Notes versions 0.102.1 and prior allows a network attacker to execute arbitrary Node.
EUVD-2026-67229
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB