Skip to main content

Joplin Desktop CVE-2026-105783

HIGH
Origin Validation Error (CWE-346)
2026-10-05 GitHub_M
8.0
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Lure victim with Web Clipper enabled to malicious site
  2. Delivery
    Page sends cross-origin POST /auth to local clipper server
  3. Exploit
    Victim approves generic unattributed pairing dialog
  4. Execution
    Attacker page polls GET /auth/check for token
  5. Impact
    Use 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

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

Vendor (GitHub_M) PRIMARY 8.0 HIGH
AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N
vuln.today AI 8.0 HIGH

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).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
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, 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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular open-source note app, but vulnerable Web Clipper server is opt-in
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 HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

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

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