Trilium Notes is a cross-platform, hierarchical note taking application focused on building large personal knowledge bases. Versions 0.102.1 and prior contain a critical security flaw where lack of SVG sanitization combined with a disabled Content Security Policy (CSP) and a publicly reachable backend execution API results in an unauthenticated Remote Code Execution (RCE). The vulnerability arises from an insecure-by-design architecture: Trilium serves SVG attachments with the image/svg+xml MIME type without any sanitization, and it explicitly disables Helmet's Content Security Policy middleware, removing the primary defense against script execution in served assets. Because the malicious SVG runs under the Same-Origin Policy, it can issue a fetch('/') to extract the csrfToken from the document body. With that token, it can send a signed request to /api/script/exec to execute arbitrary Node.js code on the server. An attacker can compromise the entire server instance simply by tricking an authenticated user into viewing a shared SVG attachment. The issue has been fixed in version 0.102.2.
CVE-2026-39311
This medium-severity CVE scores 6.8 under NVD CVSS v3. EPSS exploit probability: 0.3%, top 80% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).
- Lower severity and no public exploit yet
No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.
- CVSS v3
- 6.8
- EG Score
- 6.8(medium)
- EPSS
- 20.7%
- KEV
- Not listed
Published
May 20, 2026
Last Modified
May 21, 2026
Advisory Details (2)
Auto-updated Jun 14, 2026Stored XSS Leads to Unauthorized Remote Code Execution (RCE) via Unsanitized SVG Attachments · Advisory · TriliumNext/Trilium · GitHub
https://github.com/TriliumNext/Trilium/security/advisories/GHSA-p837-cxw3-m964v0.102.2
Patch available: TriliumNext/Trilium v0.102.2
https://github.com/TriliumNext/Trilium/releases/tag/v0.102.2Weakness Classification(2)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Data Freshness Timeline
(refreshed 9× in last 7d / 42× in last 30d)
Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.
Showing the most recent 100 of 105 total refreshes for this CVE.
- 2026-07-16 17:03 UTCEPSS rescore
- 2026-07-15 16:57 UTCEPSS rescore
- 2026-07-15 16:57 UTCEPSS rescore
- 2026-07-15 02:00 UTCEPSS rescore
- 2026-07-13 22:30 UTCEPSS rescore
- 2026-07-13 06:13 UTCEPSS rescore
- 2026-07-13 06:13 UTCEPSS rescore
- 2026-07-12 05:46 UTCEPSS rescore
- 2026-07-11 08:27 UTCEPSS rescore
- 2026-07-09 19:10 UTCEPSS rescore
- 2026-07-08 15:15 UTCEPSS rescore
- 2026-07-07 13:46 UTCEPSS rescore
- 2026-07-06 16:27 UTCEPSS rescore
- 2026-07-06 16:27 UTCEPSS rescore
- 2026-07-06 02:23 UTCEPSS rescore
- 2026-07-06 02:23 UTCEPSS rescore
- 2026-07-05 02:30 UTCEPSS rescore
- 2026-07-01 15:06 UTCEPSS rescore
- 2026-06-30 23:22 UTCEPSS rescore
- 2026-06-29 20:25 UTCEG score recompute
- 2026-06-29 14:06 UTCEPSS rescore
- 2026-06-28 14:07 UTCEPSS rescore
- 2026-06-28 04:56 UTCEPSS rescore
- 2026-06-27 20:08 UTCEG score recompute
- 2026-06-27 03:08 UTCEPSS rescore
Show 75 moreShow fewer
- 2026-06-26 19:30 UTCEG score recompute
- 2026-06-25 15:07 UTCEG score recompute
- 2026-06-25 13:49 UTCEPSS rescore
- 2026-06-25 13:49 UTCEPSS rescore
- 2026-06-24 14:05 UTCEPSS rescore
- 2026-06-23 21:33 UTCEPSS rescore
- 2026-06-22 14:25 UTCEPSS rescore
- 2026-06-22 14:25 UTCEPSS rescore
- 2026-06-21 14:56 UTCEPSS rescore
- 2026-06-21 14:56 UTCEPSS rescore
- 2026-06-21 01:59 UTCEPSS rescore
- 2026-06-19 19:25 UTCEPSS rescore
- 2026-06-19 19:25 UTCEPSS rescore
- 2026-06-18 17:52 UTCEPSS rescore
- 2026-06-18 17:52 UTCEPSS rescore
- 2026-06-17 20:02 UTCEG score recompute
- 2026-06-17 17:53 UTCEPSS rescore
- 2026-06-16 20:41 UTCEG score recompute
- 2026-06-16 17:52 UTCEPSS rescore
- 2026-06-15 22:51 UTCEG score recompute
- 2026-06-15 17:49 UTCEPSS rescore
- 2026-06-14 23:18 UTCEPSS rescore
- 2026-06-14 20:14 UTCEG score recompute
- 2026-06-13 23:00 UTCEPSS rescore
- 2026-06-13 22:25 UTCEG score recompute
- 2026-06-12 23:12 UTCEPSS rescore
- 2026-06-12 23:12 UTCEPSS rescore
- 2026-06-12 22:33 UTCEG score recompute
- 2026-06-12 00:43 UTCEG score recompute
- 2026-06-11 14:00 UTCEPSS rescore
- 2026-06-11 02:53 UTCEG score recompute
- 2026-06-10 22:18 UTCEPSS rescore
- 2026-06-10 13:22 UTCEPSS rescore
- 2026-06-10 05:04 UTCEG score recompute
- 2026-06-09 07:15 UTCEG score recompute
- 2026-06-08 14:17 UTCEPSS rescore
- 2026-06-08 14:17 UTCEPSS rescore
- 2026-06-08 09:26 UTCEG score recompute
- 2026-06-07 15:25 UTCEPSS rescore
- 2026-06-07 15:25 UTCEPSS rescore
- 2026-06-07 15:25 UTCEPSS rescore
- 2026-06-07 11:36 UTCEG score recompute
- 2026-06-06 13:47 UTCEG score recompute
- 2026-06-06 13:47 UTCEPSS rescore
- 2026-06-06 13:47 UTCEPSS rescore
- 2026-06-05 22:47 UTCEPSS rescore
- 2026-06-05 22:47 UTCEPSS rescore
- 2026-06-05 15:58 UTCEG score recompute
- 2026-06-05 06:10 UTCEPSS rescore
- 2026-06-05 06:10 UTCEPSS rescore
- 2026-06-04 18:08 UTCEG score recompute
- 2026-06-04 13:12 UTCEPSS rescore
- 2026-06-04 13:12 UTCEPSS rescore
- 2026-06-03 20:19 UTCEG score recompute
- 2026-06-02 22:29 UTCEG score recompute
- 2026-06-02 20:13 UTCEPSS rescore
- 2026-06-02 00:39 UTCEG score recompute
- 2026-06-01 13:52 UTCEPSS rescore
- 2026-06-01 13:52 UTCEPSS rescore
- 2026-06-01 13:51 UTCEPSS rescore
- 2026-06-01 02:49 UTCEG score recompute
- 2026-05-31 22:30 UTCEPSS rescore
- 2026-05-31 22:30 UTCEPSS rescore
- 2026-05-31 00:16 UTCEPSS rescore
- 2026-05-31 00:16 UTCEPSS rescore
- 2026-05-31 00:16 UTCEPSS rescore
- 2026-05-29 13:44 UTCEPSS rescore
- 2026-05-29 13:44 UTCEPSS rescore
- 2026-05-28 13:44 UTCEPSS rescore
- 2026-05-28 13:44 UTCEPSS rescore
- 2026-05-28 13:44 UTCEPSS rescore
- 2026-05-27 13:40 UTCEPSS rescore
- 2026-05-27 13:40 UTCEPSS rescore
- 2026-05-27 13:40 UTCEPSS rescore
- 2026-05-26 13:44 UTCEPSS rescore
Related CVEs(same CWE)
Frequently asked(5)
What is CVE-2026-39311?
When was CVE-2026-39311 disclosed?
Is CVE-2026-39311 actively exploited?
What is the CVSS score of CVE-2026-39311?
How do I remediate CVE-2026-39311?
Dependency Blast Radius
Explore the affected products and dependency analysis for CVE-2026-39311
Is Your Infrastructure Affected by CVE-2026-39311?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.