Joplin Desktop
CVE-2026-105783
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim with Web Clipper enabled to malicious site
-
DeliveryPage sends cross-origin POST /auth to local clipper server
-
ExploitVictim approves generic unattributed pairing dialog
-
ExecutionAttacker page polls GET /auth/check for token
-
ImpactUse permanent token to read and modify all notes
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
|
| Exploitation Conditions | Exploitation requires the opt-in Web Clipper server (packages/lib/ClipperServer.ts) to be explicitly enabled in Joplin Desktop - it is off by default, which is the single biggest limiter. Given that, the attacker needs only to get the victim to open a crafted web page in a browser on the same machine while Joplin is running; the vulnerable server accepts any http/https origin (Access-Control-Allow-Origin:*) at the POST /auth and GET /auth/check pairing endpoints. The final gating condition is user interaction: the victim must approve the desktop confirmation dialog, which fails to display the requesting origin, so an unwary user may authorize the attacking page. Limiting factors therefore are: non-default Web Clipper configuration, required local browsing context, and mandatory victim approval of the pairing prompt (UI:R, AC:H). |
| Impact | This is a genuine but conditional priority, not an inflated high-CVSS issue. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N, 8.0) correctly captures the shape of the flaw: a remote, unauthenticated attacker (PR:N) exploits it over the network via a malicious web page, but success depends on conditions outside the attacker's control (AC:H) and on the victim performing an action (UI:R) - approving the pairing dialog. The scope change (S:C) and C:H/I:H reflect that a stolen permanent API token yields ongoing read/write to all notes, folders, tags, resources, and master keys. No EPSS score, KEV listing, or public exploit was provided in the input, so exploitation status is 'no public exploit identified at time of analysis.' The most important limiting signal is that the Web Clipper server is opt-in (disabled by default), which - combined with AC:H and UI:R - means real-world exposure is far narrower than the 8.0 base score alone suggests. The counterweight is that the attack is fully remote and the confirmation dialog's failure to show the requesting origin makes the social-engineering step realistic for a victim who has Web Clipper enabled. Overall: prioritize patching for environments that knowingly enable Web Clipper; de-prioritize for the default-configuration majority. |
| Exploit ScenarioDerived | A victim running Joplin Desktop with the opt-in Web Clipper server enabled visits an attacker-controlled web page. Because the server returns Access-Control-Allow-Origin:* and does not reject http(s) origins, the page silently calls POST /auth and, when the victim approves the generic confirmation dialog that never names the requesting origin, polls GET /auth/check to harvest the permanent API token. No public exploit is identified at time of analysis, though the technique is straightforward JavaScript against a fixed localhost port. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
A malicious web page visited on a machine running Joplin Desktop with the opt-in Web Clipper server enabled can pair itself as a trusted client and obtain the permanent API token, yielding ongoing read and write access to the victim's notes, notebooks, tags, resources and master keys. The root cause (CWE-346) is that the pairing endpoints POST /auth and GET /auth/check respond with Access-Control-Allow-Origin: * and accept any http/https origin, while the desktop approval dialog fails to display the requesting origin, so a victim who approves a generic-looking prompt unknowingly authorizes the attacking page. Exploitation requires the Web Clipper server to be explicitly enabled (off by default), a browser context on the same machine, and the victim to approve the prompt; no public exploit identified at time of analysis. Vendor-released patch: 3.7.13.
RemediationAI
Upgrade Joplin Desktop to version 3.7.13 or later, which is the exact fix version documented in advisory GHSA-9728-v7ww-mxjv and released at https://github.com/laurent22/joplin/releases/tag/v3.7.13 (see also PR 16276 and commit 27ae5c0d404ee47ad24862cce917dda6eb2930b7). If immediate upgrading is not possible, the single most effective compensating control is to disable the Web Clipper server entirely in Joplin's settings, since the vulnerability only exists when that opt-in service is running; the trade-off is loss of browser clipping until the patch is applied. Users who must keep clipping enabled should restrict the clipper port (Joplin's default is 41184) with a host firewall so only localhost extension traffic can reach it, and should avoid browsing untrusted sites while Joplin is running, since any successful pairing grants persistent token-level access that survives until the token is revoked. If a pairing prompt appears unexpectedly, decline it, and rotate/revoke the Web Clipper token afterwards as a precaution.
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 Desktop ships a local HTTP Web Clipper server implemented in packages/lib/ClipperServer.ts that exposes pairing endpoints (POST /auth and GET /auth/check) used by browser extension clients to obtain the permanent API token. Because these endpoints are 'unauthenticated by design' (they are how a client authenticates) and the server emits Access-Control-Allow-Origin: *, any website's JavaScript can cross-origin call them; the origin validation error class (CWE-346) is that no check distinguishes a browser web origin from a legitimate extension origin. The fix introduces isPairingPath and isAllowedPairingOrigin: the path gate strips leading slashes via ltrimSlashes to match the router's normalization (otherwise //auth would bypass the check yet still reach the handler), and the origin gate rejects http: and https: origins while permitting chrome-extension://, moz-extension://, safari-web-extension:// and requests with no Origin header (native clients such as curl, which are not a browser CSRF vector). The CVSS vector AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N confirms remote, unauthenticated (PR:N) triggering with mandatory user interaction and a scope change, since the compromise of the token crosses from the web page's security context into the desktop application's data.
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:H/PR:N/UI:R/S:C/C:H/I:H/A:N
Remote web-page attack (AV:N) with no auth (PR:N) but dependent on opt-in Web Clipper and victim approving a prompt (AC:H, UI:R); stolen token grants cross-component read/write (S:C, C:H/I:H, A:N).
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, when Joplin Desktop is running with the opt-in Web Clipper server enabled, the server in packages/lib/ClipperServer.ts sends Access-Control-Allow-Origin: * and allows an arbitrary website to call POST /auth and GET /auth/check because the pairing endpoints do not reject HTTP or HTTPS origins. The desktop confirmation dialog does not identify the requesting origin, so a victim who approves the generic prompt authorizes the attacking page, which then receives the permanent API token. The token provides ongoing read and write access to notes, folders, tags, resources, and master keys. This issue is fixed in version 3.7.13.
Technical POC Analysis
The flaw is an Origin validation error (CWE-346), with the advisory also assigning CWE-352 (the pairing request is cross-origin forgeable) and CWE-1021/CWE-1173 (the consent prompt misrepresents what…
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Joplin Desktop users who have enabled the optional Web Clipper server are exposed to persistent theft of their entire note library - notes, notebooks, tags, attachments and encryption master keys - after visiting a malicious web page and approving a misleading pairing prompt. Because the resulting API token is permanent and grants both read and write access, exposure is not confined to a single session and can silently exfiltrate or alter sensitive organizational knowledge stored in Joplin. Only users who turned on this non-default feature are in scope, but for those users the confidentiality and integrity impact on their data is effectively total, and remediation requires both patching and credential re-keying.
Strongest interim control is to keep the opt-in Web Clipper server disabled, which removes the attack path entirely (it is off by default); where the feature is required, bind the service to localhost only, block its port from browser-reachable origins, and train users to reject unexpected pairing prompts. Invalidate any existing clipper API tokens and re-key/rotate Joplin sync credentials and master keys on any host where an unexpected approval may have occurred, and monitor note repositories for unauthorized changes until the fix is deployed. Apply vendor patch 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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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