Skip to main content

Joplin Desktop EUVDEUVD-2026-84166

| CVE-2026-49450 HIGH
Insufficient Verification of Data Authenticity (CWE-345)
2026-09-21 GitHub_M
7.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Gain adjacent position on update delivery path
  2. Delivery
    Replace app-update.yml and installer with malicious build
  3. Exploit
    Client skips Authenticode signer check
  4. Execution
    User approves installation prompt
  5. Persist
    Attacker code executes at user privilege
  6. Impact
    Compromise notes, credentials, and local data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
Exploitation Conditions

Requires the Windows build of Joplin Desktop prior to 3.7.2 (the missing publisherName only affects the Windows NSIS Authenticode verification path). The attacker must control or intercept the update delivery path - a MITM position on the network between client and update host, or a compromised update server/mirror - in order to substitute the app-update.yml metadata and the installer. Exploitation further requires the victim to approve the installation prompt (UI:R): the malicious installer is only accepted after the user clicks through Joplin's normal update-approval flow. Limiting factors: Windows-only, needs active adjacent/on-path control (not a passive remote request), high complexity, and mandatory user interaction; macOS/Linux and default in-transit HTTPS integrity may further raise the bar.

Impact

This is a legitimately meaningful supply-chain / update-integrity flaw, but the CVSS 7.1 (AV:A/AC:H/PR:N/UI:R) accurately signals it is NOT a mass-exploitation priority. The vendor vector requires an adjacent position on the update delivery path (AV:A), high attack complexity (AC:H - the attacker must actively intercept/replace update metadata and the installer), and user interaction (UI:R - the victim must approve the malicious installer). No EPSS score, no CISA KEV listing, and no public exploit code were provided, consistent with 'no public exploit identified.' The root cause is real and confirmed by the patch diff (missing publisherName causes electron-updater's NsisUpdater.verifySignature() to skip Authenticode signer comparison), so exploitation is technically sound once an attacker controls the channel - but that channel control (MITM of the HTTPS update fetch, DNS/network compromise, or a compromised update host) is itself a significant prerequisite that gates real-world risk. Net: a genuine defense-in-depth failure worth patching, not an internet-wide remote-code-execution emergency.

Exploit ScenarioDerived

An attacker who can intercept or control Joplin's update delivery path (e.g., a MITM position on a shared/hostile network or a compromised update mirror) serves modified app-update.yml metadata pointing to a malicious NSIS installer signed by a different publisher or left unsigned. Because publisherName is absent, the client skips the Authenticode signer comparison, and once the user clicks through the normal update-approval prompt, attacker code runs with the user's privileges. No public exploit code was identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 21, 2026

Missing update-signature verification in Joplin Desktop for Windows (versions prior to 3.7.2) lets an attacker who controls the update delivery path substitute both the app-update.yml metadata and the installer, because the absent publisherName field causes electron-updater's NsisUpdater.verifySignature() to skip comparing the downloaded installer's Authenticode signer against Joplin's own. The attacker is positioned adjacent/on-path (MITM or compromised update server) and unauthenticated per the CVSS vector (PR:N), but exploitation requires the victim to approve the installation prompt (UI:R); successful abuse runs attacker-controlled code with the user's privileges and can compromise notes, credentials, and local data. No public exploit has been identified at time of analysis, and the 7.1 score with AC:H and UI:R indicates this is a meaningful supply-chain integrity flaw rather than a mass-exploitation priority.

RemediationAI

Vendor-released patch: upgrade Joplin Desktop for Windows to version 3.7.2 (advisory https://github.com/laurent22/joplin/security/advisories/GHSA-9wp7-hr9m-3273; fix commit 853659edf575c4f526c2b196e0629462aee9df28 via PR https://github.com/laurent22/joplin/pull/15539), which restores the publisherName check in app-update.yml so NsisUpdater.verifySignature() again validates the installer's Authenticode signer. Until upgrading, treat the update channel as untrusted: manually download installers from the official Joplin site over a trusted network and verify the Authenticode signature (the Digital Signatures tab on the installer properties) before approving any in-app update prompt - with the trade-off that users must judge signer identity themselves, since the app no longer does. Where managed deployment allows it, disable in-app automatic update checks via Joplin's settings so installers are only obtained through a controlled channel, or host updates on an internal mirror and restrict client egress to it, which removes the on-path/MITM vector at the cost of losing upstream auto-update convenience. Enforcing TLS inspection with strict certificate validation on the update endpoint raises the bar for interception, but note the assessment that default in-transit HTTPS integrity may already be a limiting factor for the attacker, so none of these controls are a substitute for patching to 3.7.2.

Affected VersionsENISA

joplin < 3.7.2

Affected Packages

euvd joplin fix: 3.7.2

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

The root cause is CWE-345 (Insufficient Verification of Data Authenticity) in the Windows packaging configuration of Joplin. Joplin's desktop app is packaged with electron-builder and updated by electron-updater; the auto-update pipeline reads app-update.yml and, for NSIS targets, NsisUpdater.verifySignature() compares the Authenticode publisher of a downloaded installer against the publisherName configured in the build. Because packages/app-desktop/package.json omitted publisherName, no publisher identity was written into app-update.yml, so the verification step had nothing to compare against and effectively became a no-op on the Windows NSIS path. This is an updater trust-chain gap rather than a memory-safety or server-side flaw: any installer - signed by a different publisher or unsigned - can pass the check once the update metadata points to it. The CPE cpe:2.3:a:laurent22:joplin:*:*:*:*:*:*:*:* reflects all Joplin versions before the fix; the code change adding a publisherName array ("Joplin") to package.json restores the signer comparison for Windows builds. macOS and Linux update paths are not governed by this NSIS Authenticode check.

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 7.1 HIGH
AV:A/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.1 HIGH

On-path control of the update channel is AV:A and AC:H, no auth is needed (PR:N) but the user must approve the install (UI:R); resulting code execution yields C:H/I:H/A:H at user privilege.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Adjacent
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 21, 2026 - 22:02 EUVD
CVE Published
Sep 21, 2026 - 20:49 cve.org
HIGH 7.1

DescriptionCVE.org

Joplin is an open source note-taking and to-do application that organises notes and lists into notebooks. Prior to 3.7.2, Joplin Desktop for Windows omits publisherName from packages/app-desktop/package.json, so the generated app-update.yml causes NsisUpdater.verifySignature() to skip comparison of a downloaded update's Authenticode signer with Joplin's signer. An attacker who controls the update delivery path can replace the update metadata and installer, and the client accepts an installer signed by another publisher or left unsigned after the user approves installation. Successful exploitation runs attacker-controlled code with the user's privileges and can compromise notes, credentials, and local data. This issue is fixed in version 3.7.2.

Technical POC Analysis

CWE-345 (also tagged CWE-353, CWE-494).

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 for Windows versions prior to 3.7.2 contain a missing update-signature verification flaw that could let an unauthenticated attacker on the update path deliver a malicious installer if a user approves the prompt. This supply-chain integrity issue affects any workforce using vulnerable Joplin installations for notes or sensitive data, potentially exposing credentials and local information under the user's privileges. No public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis, but leadership should treat update-channel trust as a business risk.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; disable automatic updates in Joplin Desktop for Windows where feasible, distribute Joplin installers only through an internally controlled and authenticated software distribution channel, manually verify installer hashes and Authenticode signatures against vendor-published values before deployment, restrict outbound access to Joplin update servers, train users to reject unexpected update prompts, apply application allowlisting and endpoint detection, and monitor vendor advisories for a fixed release (3.7.2 or later).

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular open-source cross-platform note app, sizable but non-enterprise Windows desktop footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 Yes
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
Poc
System Exposure· derived
Controlled
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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