Joplin Server
CVE-2026-105786
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft attacker-chosen application auth identifier
-
DeliveryLure logged-in victim to consent page
-
ExploitVictim approves attacker's identifier
-
ExecutionRedeem durable application ID and password
-
ImpactExchange credential for victim session with full data access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a Joplin Server (self-hosted sync server) deployment running a version prior to 3.7.13. The attacker does not need credentials, but exploitation depends on an already-authenticated victim being lured into approving the attacker's chosen application authorization identifier on the generic consent page (the vulnerable POST to applications/:id/confirm was public and lacked CSRF/session binding). Limiting factors: the victim must be logged in and must actively approve the consent (UI:A/UI:R), so success depends on social engineering or a cross-site request against an authenticated session rather than fully silent unauthenticated exploitation; no non-default configuration is otherwise required. |
| Impact | This is a genuine high-priority issue rather than a CVSS-inflated paper risk, but its exploitation is conditional. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A) describes a network-reachable, low-complexity, unauthenticated attacker who nevertheless requires active victim interaction - the logged-in victim must approve the attacker's chosen application authorization identifier on the consent page. CWE-306 (missing authentication for a critical function) is consistent with the source diff, which shows the authorizing POST to applications/:id/confirm was publicly reachable and lacked a CSRF/session binding, so a cross-site request could authorize an application for a logged-in user. Technical impact is high (VC:H/VI:H): successful exploitation yields a victim session with full read and write access to synchronized notes, effectively account takeover of sync data, with no availability impact (VA:N). No EPSS score, CISA KEV listing, or public POC was provided in the input, so the automated-exploitation and widespread-exploitation signals are absent; the realistic risk therefore hinges on social-engineering the victim into approving the consent page rather than on mass unauthenticated exploitation. No SSVC decision data was supplied. The reliance on UI:A (user interaction) is the single largest mitigating factor against the otherwise network-unauthenticated profile. |
| Exploit ScenarioDerived | An attacker targeting a Joplin Server instance generates an application authorization identifier under their control and sends a logged-in victim a crafted link (or cross-site request) to the generic consent page. The victim approves the attacker's identifier, after which the attacker redeems a durable application ID and password and exchanges it for a victim session, gaining full read/write access to the victim's synchronized notes. No public exploit identified at time of analysis, though the fix PR and commit disclose the exact mechanism. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
Improperly protected application-authorization flow in Joplin Server (the self-hosted sync backend for the Joplin note-taking client) before 3.7.13 lets an attacker supply their own placeholder application identifier, have a logged-in victim approve it on the consent page, and then redeem that identifier for a durable application ID and password that yields a victim session with full read and write access to synchronized notebooks and notes. The CVSS vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A) rates it 8.5 because no attacker credentials are required, though success still depends on a victim who is already authenticated actively approving the consent step, making social engineering or a cross-site request against an authenticated session the practical path rather than silent compromise. No public exploit code and no confirmed active exploitation (CISA KEV) were identified at time of analysis, and the issue is addressed by upgrading to 3.7.13.
RemediationAI
Vendor-released patch: upgrade Joplin Server to 3.7.13 or later, available from the project's release page (https://github.com/laurent22/joplin/releases/tag/v3.7.13) and described in GHSA-435m-gr6q-2fg6 (https://github.com/laurent22/joplin/security/advisories/GHSA-435m-gr6q-2fg6); the fix is contained in commit 1a0a50afc96d4c228c736293d53de96aa23f4d00 and PR 16270. After upgrading, review and revoke any application passwords you do not recognize in the Joplin Server admin or user settings, since a credential issued before patching remains durable and valid until revoked. If immediate upgrade is not possible, a compensating control is to block unauthenticated POST requests to the path pattern /applications/*/confirm at a reverse proxy while still allowing the GET consent page, which preserves legitimate app authorizations performed from inside an authenticated session but will break any client that initiates authorization by a direct cross-site POST; note this is a partial mitigation because the vulnerable handler still exists in the application. Restricting network access to the Joplin Server sync API so it is reachable only from trusted networks or behind a VPN reduces exposure but degrades mobile and remote-client syncing, and disabling the application-password feature entirely (if your deployment does not use API tokens or external clients) removes the attack surface at the cost of breaking integrations that rely on it.
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
The root cause is CWE-306, Missing Authentication for Critical Function, located in the server-side application password issuance path. In packages/server/src/models/ApplicationModel.ts the server accepts a caller-chosen application authorization identifier, and the route applications/:id/confirm then binds that identifier to whatever user is logged in through a generic consent page. Because the problematic POST to applications/:id/confirm was registered in the router's flat publicSchemas list, it was treated as a public route and skipped the session and CSRF enforcement that Joplin Server normally applies to state-changing endpoints. The public endpoint packages/server/src/routes/api/application_auth.ts subsequently takes the approved identifier and calls ApplicationModel.createAppPassword without authenticating or cryptographically binding the party redeeming the authorization, so the attacker who originally chose the identifier can collect the resulting durable application ID and password. The upstream fix in PR 16270 reworks packages/server/src/utils/Router.ts to add a publicSchemasByMethod map and moves 'applications/:id/confirm' into an HTTP-GET-only public list, with the corresponding change in packages/server/src/utils/routeUtils.ts so isPublic() is evaluated with the request method; the authorizing POST therefore retains the normal session and CSRF checks, and new tests in packages/server/src/routes/index/applications.test.ts assert that a forged _csrf token yields ErrorForbidden and creates no application record. The CPE cpe:2.3:a:laurent22:joplin:*:*:*:*:*:*:*:* is an unbounded wildcard, so all builds below the fixed release are treated as affected and version confirmation should be done against the v3.7.13 release tag.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Unauthenticated network attacker (PR:N, AV:N, AC:L) but a logged-in victim must approve the consent page (UI:R); full read/write to notes gives C:H/I:H, no availability impact.
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, packages/server/src/models/ApplicationModel.ts accepts a caller-chosen application authorization identifier, applications/:id/confirm binds that identifier to a logged-in user through a generic consent page, and the public packages/server/src/routes/api/application_auth.ts endpoint passes it to ApplicationModel.createAppPassword without authenticating or binding the redeemer. An attacker can cause a victim to approve the attacker's identifier, redeem a durable application ID and password, and exchange the credential for a victim session with full read and write access to synchronized data. This vulnerability is fixed in 3.7.13.
Technical POC Analysis
CWE-306 (Missing Authentication for Critical Function); the advisory also tags CWE-330 and CWE-863.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Joplin Server, the self-hosted sync backend for Joplin notes, contains a high-severity authorization flaw (CVE-2026-105786) that could let an unauthenticated attacker gain full read and write access to a victim's synchronized notebooks and notes after the victim approves a malicious application consent request. This affects organizations using Joplin Server versions before 3.7.13, potentially exposing or altering sensitive business notes. No public exploit identified at time of analysis, but leadership should prioritize remediation because the attack requires only user interaction, not attacker credentials, making social engineering a practical risk.
Apply vendor patch.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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