Skip to main content

Joplin Server CVE-2026-59815

| EUVDEUVD-2026-84177 MEDIUM
Incorrect Authorization (CWE-863)
2026-09-21 GitHub_M
4.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as invited low-priv user
  2. Delivery
    Receive pending folder-share invite
  3. Exploit
    POST item with target share_id
  4. Execution
    checkIfAllowed passes (no Accepted check)
  5. Persist
    updateSharedItems3 propagates content
  6. Impact
    Injected note reaches owner and participants

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires (1) a running Joplin Server instance prior to version 3.7.7, (2) an authenticated low-privileged user account (PR:L), and (3) that the attacker has been sent a folder-share invitation which is still in the pending/Waiting state (ShareUserStatus not yet Accepted). Given those, the attacker sends an item-creation API request specifying the target share_id; the flaw is in ItemModel.checkIfAllowed() accepting any share_users row regardless of acceptance status. LIMITING FACTORS: attacker cannot target arbitrary shares - a legitimate invitation to the specific shared folder is a prerequisite, so this is scoped to social/collaboration relationships; impact is limited to injecting content (integrity), with no read or deletion capability. This is not exploitable against default configurations without the invitation precondition.

Impact

This is a genuine but low-to-moderate severity authorization flaw, not a high-impact emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N, 4.3) is internally consistent with the description and the patch: network-reachable, low complexity, but requiring an authenticated low-privileged account (PR:L) and yielding only limited integrity impact (I:L) - the attacker can inject/create items into a share but cannot read (C:N) or delete/deny (A:N) existing owner data. No EPSS score, KEV entry, or public POC was provided, so exploitation status is 'no public exploit identified at time of analysis.' The one meaningful gating factor beyond authentication is that the attacker must have received a pending folder-share invitation from the target - the server does not let arbitrary users write into arbitrary shares, only into shares they were invited to but have not yet accepted. That significantly narrows the realistic attacker population and makes this a targeted, socially-scoped issue rather than a broadly automatable one. Priority is moderate for Joplin Server operators (patch in normal cadence); it does not warrant emergency response absent active-exploitation signals.

Exploit ScenarioDerived

An attacker who has been invited to collaborate on a shared folder (but has not yet clicked accept) issues an authenticated API call to create a note under the share's ID. Because ItemModel.checkIfAllowed() only checks that a share_users row exists - not that its status is Accepted - the write succeeds, and ShareModel.updateSharedItems3() then propagates the attacker's injected content to the folder owner and all accepted participants. No public exploit code is identified, but the fix commit's regression test demonstrates the exact request sequence.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 21, 2026

Joplin Server prior to 3.7.7 lets an authenticated low-privileged user who holds a *pending* (not yet accepted) folder-share invitation write new items directly into that shared folder, because ItemModel.checkIfAllowed() accepts any share_users row for the caller without requiring ShareUserStatus.Accepted. The injected content is then pushed out to the share owner and already-accepted participants by ShareModel.updateSharedItems3() before the attacker ever accepts the invitation, giving unauthorized content injection into another user's notebook. The flaw requires the invitation precondition, so it is not exploitable against arbitrary shares or default configurations with no pending invite; impact is integrity-only (CVSS 3.1 base 4.3, C:N/I:L/A:N, PR:L), no public exploit code was identified at time of analysis, and the issue is fixed in 3.7.7.

RemediationAI

Vendor-released patch: 3.7.7 - upgrade every self-hosted Joplin Server instance to 3.7.7 or later, which enforces the ShareUserStatus.Accepted requirement in ItemModel.checkIfAllowed() (upstream fix commit dff533ccbd2b300eac218a11a7619280865e2e9b; advisory https://github.com/laurent22/joplin/security/advisories/GHSA-qq59-gg3w-pf7v). Because the patch is server-side only, no client upgrade is needed, and there is no configuration toggle that closes the gap on older builds. If immediate upgrade is impossible, the highest-value compensating control is to eliminate the prerequisite itself: query the share_users table for rows whose status is not Accepted and either cancel or let expire outstanding invitations, which removes every user who could exercise the bypass - the trade-off is that legitimate collaborators cannot be onboarded until they are re-invited and accepted after the upgrade. A second option is to restrict API access so that item-creation requests carrying a share_id can only be issued by accounts with an Accepted membership, implemented either at a reverse proxy via request inspection (fragile, since share_id values appear in request bodies) or by temporarily disabling the Joplin data API for untrusted accounts - the latter breaks legitimate sync and automation clients. Finally, audit existing shares for items authored by users whose share_users status was Waiting at the time of creation using ShareModel change history and delete any injected notes, since content propagated by updateSharedItems3() persists in the owner's notebook even after the invitation is accepted or revoked.

Affected VersionsENISA

joplin < 3.7.7

Affected Packages

euvd joplin fix: 3.7.7

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

At the root of this issue is CWE-863 (Incorrect Authorization): the authorization check in Joplin Server's ItemModel.checkIfAllowed() treated the mere existence of a share_users row as sufficient proof of write access to an item belonging to a share. Joplin's sharing model is membership-based - a Share row has ShareUser rows whose status transitions from Waiting (invitation sent, not yet accepted) to Accepted - and the server's sync/ItemModel layer is the enforcement point for per-item access. The vulnerable code path was reachable through the Joplin data API item-creation route (POST on items, with a parent_id and share_id supplied by the client), and because the propagation routine ShareModel.updateSharedItems3() runs over share membership independently of the caller's own acceptance state, a Waiting invitee could seed an item under the share ID and have it fanned out to the owner and Accepted members. The upstream commit dff533ccbd2b300eac218a11a7619280865e2e9b fixes this by importing ShareUserStatus and changing the guard to 'if (!shareUser || shareUser.status !== ShareUserStatus.Accepted) throw new ErrorForbidden(...)', and the accompanying regression test in shares.folder.test.ts asserts that a Waiting recipient receives an ErrorForbidden on note creation and that the item is not retrievable by the share owner afterward. The CPE string cpe:2.3:a:laurent22:joplin:*:*:*:*:*:*:*:* is an unversioned wildcard for the Joplin product family, so version scoping must come from the GHSA advisory text rather than the CPE.

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.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 4.3 MEDIUM

Network API, low complexity, requires an authenticated invited user (PR:L) with a pending share invite; only content injection so I:L, no read (C:N) or denial (A:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/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
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Sep 21, 2026 - 22:02 EUVD

DescriptionCVE.org

Joplin is an open source note-taking and to-do application that organises notes and lists into notebooks. Prior to 3.7.7, Joplin Server's ItemModel.checkIfAllowed() authorizes writes to items with a share ID when any share_users row exists for the caller, without requiring ShareUserStatus.Accepted. A low-privileged authenticated user with a pending folder-share invitation can create an item under the share ID, and ShareModel.updateSharedItems3() propagates the injected content to the owner and accepted participants before the attacker accepts the invitation. This issue is fixed in version 3.7.7.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
Self-hosted Joplin Server is a niche deployment among Joplin's mostly-desktop user base
Data Quality
5 sources
Confidence: Medium

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 Yes
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

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