CVE-2026-77438
HighCVSS 7.5Exploitation Probability (EPSS)
Low risk15th percentile - higher than 15% of all known CVEs
Summary
Trilium is an open-source hierarchical note-taking application. In versions up to and including 0.103.0, the public share-search endpoint does not enforce per-note shareCredentials and shareHiddenFromTree controls, allowing an unauthenticated visitor to read titles, tree paths, and content of protected shared notes. The endpoint authorizes only the ancestor note and then runs a full-text search across the entire published subtree without re-checking individual note permissions.
Risk Assessment
An attacker can use the endpoint as a boolean oracle to confirm arbitrary substrings and recover full contents of password-protected notes, compromising data confidentiality.
Recommendation
Upgrade to version 0.104.0, which enforces access controls on individual notes.
Other vulnerabilities in Trilium
See all- CVE-2026-53579Critical
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.
- CVE-2026-53578Critical
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.
- CVE-2026-48996Critical
Trilium is an open-source hierarchical note-taking application. In versions up to and including 0.103.0, the default-on "Safe import" filter does not sanitize note titles, and the GeoMap note view interpolates a marker note's title into raw HTML that is rendered as innerHTML, allowing an attacker-supplied import archive to inject script that runs when the map is displayed. Because Safe import neutralizes scripts but never escapes titles, a note whose title contains an HTML event-handler payload survives the import and executes as soon as the victim opens the GeoMap that renders its marker. 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.
- CVE-2026-53580High
Trilium, prior to version 0.104.0, has a vulnerability in the automatic image-download feature. It accepts file:// URLs in 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. Additionally, pointing at an unbounded source like /dev/zero causes uncontrolled memory allocation and crashes the server. Fixed in version 0.104.0.
- CVE-2026-47727High
Trilium, prior to version 0.104.0, has a vulnerability in the default-on "Safe import" filter. The filter fails to neutralize the shareTemplate relation because it is not marked as dangerous, allowing an attacker-supplied import archive to plant a server-side template leading to remote code execution. When the victim publishes the imported note, the public share renderer feeds the linked EJS code note's raw bytes into ejs.render, which compiles them in the server's Node process. Fixed in version 0.104.0.
Original NVD description (English source)
Trilium is an open-source hierarchical note-taking application. In versions up to and including 0.103.0, the public share-search endpoint does not enforce the per-note shareCredentials and shareHiddenFromTree controls, allowing an unauthenticated visitor to read the titles, tree paths, and content of protected shared notes. The endpoint authorizes only the ancestor note supplied in the request and then runs a full-text search across the entire published subtree, returning each matching note's title, share identifier, and hierarchical path without re-checking whether that individual note requires a share password or is hidden from the navigation tree. Because the search matches note content, an attacker can enumerate protected notes and use the endpoint as a boolean oracle that confirms arbitrary substrings, recovering the full contents of notes that should be gated behind a password. This issue is fixed in version 0.104.0.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

