Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft note with malicious jsoncanvas fence
-
DeliveryDeliver note to victim via share or import
-
ExploitVictim selects the note (UI:R)
-
ExecutionWhiteboardEditor renders card HTML via dangerouslySetInnerHTML
-
ImpactInjected CSS redresses app chrome and beacons/leaks attributes
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 the Joplin desktop app and a note whose content includes a jsoncanvas fence rendered by the WhiteboardEditor; the malicious Markdown must reach the victim (e.g., via a shared notebook, synced data, or imported note) and the victim must actively select/open that note (UI:R) for the TextNode/FileNode components to render the card via dangerouslySetInnerHTML. Limiting factors that reduce real-world risk: Content Security Policy blocks inline script, capping impact at CSS injection, UI redressing, open-signaling, and possible disclosure of exposed attribute values - not code execution; the attacker cannot self-trigger without the user opening the note; and only versions prior to 3.7.13 are affected. |
| Impact | This is a genuinely low-to-moderate risk issue that should not be over-prioritized. The vendor CVSS of 4.6 (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N) correctly reflects a bounded-impact flaw: it requires the victim to select/open an attacker-supplied note (UI:R) and yields only low confidentiality and integrity impact with no availability impact. Crucially, the advisory and description explicitly state that Content Security Policy blocks inline script execution, so the realistic ceiling is CSS injection and UI redressing - NOT remote code execution, despite the 'RCE' tag in the input, which is contradicted by the primary description and should be disregarded. No EPSS score, CISA KEV listing, or public POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; this is a priority driven by patch hygiene, not by threat intelligence. One signal conflict to note: the source-code evidence (the stripUnsafeStyles patch and its tests targeting <style>/@import) fully corroborates the described CSS-injection mechanism, which is reassuring, but the attack is social-engineering-gated (victim must open a crafted note), making it targeted rather than wormable. |
| Exploit ScenarioDerived | An attacker crafts a Joplin note containing a jsoncanvas fence whose whiteboard card holds malicious Markdown that renders to a <style> element with a remote @import. When the victim selects the note, the WhiteboardEditor renders the card into the main application document via dangerouslySetInnerHTML, injecting CSS that restyles trusted app chrome, beacons the attacker when the note is opened, and may leak exposed attribute values. No public exploit was identified at time of analysis, and CSP prevents this from escalating to code execution. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
CSS injection in Joplin Desktop versions prior to 3.7.13 allows a malicious note containing a jsoncanvas fence to inject styles and remote CSS imports into the application chrome when the victim selects the note in the Whiteboard editor, enabling UI redressing, open-signaling, and possible disclosure of exposed attribute values. Content Security Policy blocks inline script execution, so the supported impact is not code execution, and no public exploit has been identified at time of analysis. Vendor-released patch: 3.7.13.
RemediationAI
Upgrade to Joplin 3.7.13 or later, as published at https://github.com/laurent22/joplin/releases/tag/v3.7.13; this version includes the stripUnsafeStyles fix from PR https://github.com/laurent22/joplin/pull/16275 that strips <style> elements and their remote @import rules from whiteboard card output while keeping benign inline style attributes. Refer to the advisory at https://github.com/laurent22/joplin/security/advisories/GHSA-6h4j-86j4-x4q4 for official guidance. If immediate upgrading is not possible, treat shared, synced, or imported notes containing jsoncanvas fences as untrusted and avoid opening them, because exploitation requires the victim to actively select the malicious note; restricting notebook sharing to trusted parties reduces exposure, and note that CSP already blocks inline script so the residual risk is limited to CSS injection and UI redressing rather than code execution.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Joplin's WhiteboardEditor renders jsoncanvas fence content through TextNode.tsx and FileNode.tsx, which pass the output of the full Markdown renderer into the main application document via dangerouslySetInnerHTML; unlike normal note previews, these whiteboard cards are not sandboxed inside the isolated note-viewer iframe. This design lets a note-supplied <style> element, including remote @import URLs, style the application's own chrome rather than only the note content, which is a variant of CWE-79 (improper neutralization of user-controlled HTML). The assessed vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N reflects low-to-moderate risk: even though no authentication is required per that assessment (the original advisory vector lists PR:L), the attacker cannot self-trigger and the victim must actively open the malicious note (UI:R). CSP blocks inline script, capping practical impact at CSS injection, UI redressing, note-open signaling, and disclosure of already exposed attribute values; a tag in the source intelligence mentions RCE, but that is not supported by the available evidence. The upstream fix in PR #16275 adds a stripUnsafeStyles helper that removes <style> elements and thus their @import rules while deliberately preserving inline style attributes that cannot reach the application chrome.
Know when Joplin 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:R/S:U/C:L/I:L/A:N
Attacker supplies crafted note content without privileges on the victim's instance (PR:N) but the victim must open it (UI:R); CSP caps impact to low CSS-based confidentiality/integrity, no availability - I diverge from the vendor's PR:L.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
Joplin is an open source note-taking and to-do application that organises notes and lists into notebooks. Prior to 3.7.13, selecting a note containing a jsoncanvas fence causes the whiteboard text and file-node components in packages/app-desktop/gui/NoteEditor/NoteBody/WhiteboardEditor/nodes/TextNode.tsx and packages/app-desktop/gui/NoteEditor/NoteBody/WhiteboardEditor/nodes/FileNode.tsx to render card content with the full Markdown renderer. The components insert the resulting HTML into the main application document through dangerouslySetInnerHTML. A malicious note can inject style elements and remote CSS imports that modify trusted application chrome, signal when the note is opened, and potentially disclose exposed attribute values. Content Security Policy blocks inline script execution, so the supported impact is CSS injection and UI redressing rather than code execution. This issue is fixed in version 3.7.13.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Affected Products (CPE)CVE.org
Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into
Joplin is a free, open source note taking and to-do application. Rated critical severity (CVSS 9.6), this vulnerability
Joplin is a free, open source note taking and to-do application. Rated critical severity (CVSS 9.6), this vulnerability
Joplin v2.8.8 allows attackers to execute arbitrary commands via a crafted payload injected into the Node titles. Rated
Joplin Server instances prior to 3.7.2 expose an SSO login-code redemption endpoint (GET /api/login_with_code/:id) that
Joplin is an open source, privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and
Joplin version 2.8.8 allows an external attacker to execute arbitrary commands remotely on any client that opens a link
Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into
Joplin 1.2.6 for Desktop allows XSS via a LINK element in a note. Rated medium severity (CVSS 6.1), this vulnerability i
An XSS issue in Joplin desktop 1.0.190 to 1.0.245 allows arbitrary code execution via a malicious HTML embed tag. Rated
Joplin version prior to 1.0.90 contains a XSS evolving into code execution due to enabled nodeIntegration for that parti
Joplin through 1.0.184 allows Arbitrary File Read via XSS. Rated medium severity (CVSS 5.4), this vulnerability is remot
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB