Vulnerability · Published Oct 5, 2026 · Assigned by GitHub_M
CVE-2026-105786Joplin: Unauthenticated account takeover via an attacker-chosen application-authorisation identifier
High 8.5
In plain English
A high-severity missing authentication in joplin from laurent22. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.4% (higher than 31% of all known vulnerabilities).
Official description
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.
Affected products (as reported)
Weakness: CWE-306, CWE-330, CWE-863 · Vector: 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
References
- https://github.com/laurent22/joplin/security/advisories/GHSA-435m-gr6q-2fg6 x_refsource_CONFIRM
- https://github.com/laurent22/joplin/pull/16270 x_refsource_MISC
- https://github.com/laurent22/joplin/commit/1a0a50afc96d4c228c736293d53de96aa23f4d00 x_refsource_MISC
- https://github.com/laurent22/joplin/releases/tag/v3.7.13 x_refsource_MISC