Skip to main content

Joplin CVE-2026-105784

MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-05 GitHub_M
4.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft note with malicious jsoncanvas fence
  2. Delivery
    Deliver note to victim via share or import
  3. Exploit
    Victim selects the note (UI:R)
  4. Execution
    WhiteboardEditor renders card HTML via dangerouslySetInnerHTML
  5. Impact
    Injected 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (GitHub_M) PRIMARY 4.6 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

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

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Medium
popular open-source desktop note app, moderate but not ubiquitous footprint
Data Quality
4 sources
Confidence: Medium
NVD CVE.org EPSS Vulnrichment GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

23
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +23
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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

cpe:2.3:a:laurent22:joplin:*:*:*:*:*:*:*:*

More in Joplin

View all
CVE-2025-27134 HIGH POC
8.8 Apr 30

Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into

CVE-2024-49362 CRITICAL POC
9.6 Nov 14

Joplin is a free, open source note taking and to-do application. Rated critical severity (CVSS 9.6), this vulnerability

CVE-2024-40643 CRITICAL POC
9.6 Sep 09

Joplin is a free, open source note taking and to-do application. Rated critical severity (CVSS 9.6), this vulnerability

CVE-2022-35131 CRITICAL POC
9.0 Jul 25

Joplin v2.8.8 allows attackers to execute arbitrary commands via a crafted payload injected into the Node titles. Rated

CVE-2026-46649 CRITICAL POC
9.1 Sep 21

Joplin Server instances prior to 3.7.2 expose an SSO login-code redemption endpoint (GET /api/login_with_code/:id) that

CVE-2024-53268 HIGH POC
8.8 Nov 25

Joplin is an open source, privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and

CVE-2022-40277 HIGH POC
7.8 Sep 30

Joplin version 2.8.8 allows an external attacker to execute arbitrary commands remotely on any client that opens a link

CVE-2025-27409 HIGH POC
7.5 Apr 30

Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into

CVE-2020-28249 MEDIUM POC
6.1 Nov 06

Joplin 1.2.6 for Desktop allows XSS via a LINK element in a note. Rated medium severity (CVSS 6.1), this vulnerability i

CVE-2020-15930 MEDIUM POC
6.1 Sep 24

An XSS issue in Joplin desktop 1.0.190 to 1.0.245 allows arbitrary code execution via a malicious HTML embed tag. Rated

CVE-2018-1000534 MEDIUM POC
6.1 Jun 26

Joplin version prior to 1.0.90 contains a XSS evolving into code execution due to enabled nodeIntegration for that parti

CVE-2020-9038 MEDIUM POC
5.4 Feb 17

Joplin through 1.0.184 allows Arbitrary File Read via XSS. Rated medium severity (CVSS 5.4), this vulnerability is remot

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy