CVE-2026-53580: Trilium arbitrary file disclosure via file:// scheme in images

CVE-2026-53580 · Severity: high · CVSS 8.1 · Published 2026-08-27

Trilium is an open-source note-taking application with built-in automatic image downloading. A vulnerability in versions prior to 0.104.0 allows authenticated users to read any file accessible to the Trilium process and cause denial-of-service crashes by embedding specially crafted image tags in notes. Because the feature is enabled by default and reachable through multiple interfaces (web UI, API, web clipper, imports), any user with a login or API token can exploit this without special privileges.

Technologies: TriliumNext Trilium. Vendors: TriliumNext.

Quick answers

Is CVE-2026-53580 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-53580 being exploited in the wild.
How severe is CVE-2026-53580?
High severity, with a CVSS score of 8.1, published 27 August 2026.
Which products and versions are affected?
TriliumNext Trilium prior to 0.104.0.
Is there a fix for CVE-2026-53580?
A patch was published on 0.104.0. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-53580 attacked?
It is attacked over the network.
Am I affected by CVE-2026-53580?
Check whether you run TriliumNext Trilium at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

This is a path-traversal / arbitrary-file-read vulnerability in Trilium's automatic image-download feature. When a note containing HTML is saved, Trilium's `downloadImage()` function (notes.ts:618-635) accepts `file://` URLs, strips the protocol prefix, and passes the remainder directly to `fs.readFile()` with no path validation, canonicalization, or size checks. Because the HTML sanitizer preserves `file://` as an allowed protocol (shared_constants.ts:17), attackers can inject `<img src="file:///etc/passwd">` and similar payloads into notes via the web UI, ETAPI (`PUT /etapi/notes/:noteId/content`), web clipper, or import functions. The downloaded file content is stored as a note attachment, leaking sensitive data. Additionally, pointing the same primitive at unbounded resources like `/dev/zero` causes uncontrolled memory allocation leading to process crashes. Exploitation requires only an authenticated session or ETAPI token (no admin role). The fix is available in version 0.104.0.

Affected products

  • TriliumNext Trilium prior to 0.104.0

Timeline

  • 2026-08-27: disclosed
  • 0.104.0: patched

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.