Skip to main content

Joplin Server CVE-2026-59816

| EUVDEUVD-2026-84169 MEDIUM
Path Traversal (CWE-22)
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 to Joplin Server
  2. Delivery
    Craft job ID with URL-encoded ../ segments
  3. Exploit
    parseSubPath decodes past /transcribe/ prefix
  4. Execution
    Server proxies to internal backend endpoint
  5. Impact
    Return internal admin/health/config data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

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 instance running with the configuration setting TRANSCRIBE_ENABLED=true - the vulnerable GET/POST /api/transcribe/:id handlers only proxy to the transcription backend when this feature flag is on, so default deployments without transcription are not exposed. The attacker must hold a valid authenticated Joplin Server session (PR:L), and a reachable transcription backend (TRANSCRIBE_BASE_URL) with adjacent internal endpoints (admin/health/config) must exist for the escaped path to return sensitive data. No user interaction is needed. The practical value depends on what those neighboring backend endpoints actually expose.

Impact

This is a low-to-moderate real-world risk that maps well to its 4.3 CVSS score rather than being an inflated rating. The vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N confirms network reachability with low complexity, but PR:L means a valid authenticated Joplin Server account is required, and impact is confidentiality-only (C:L) with no integrity or availability effect. No EPSS score, KEV listing, or public POC was provided, so per the precision rules this is 'no public exploit identified at time of analysis' - there is no signal of active or automated exploitation. A key limiting factor absent from the CVSS vector but explicit in the description is the TRANSCRIBE_ENABLED=true configuration gate: the vulnerable route only exists when the transcription feature is turned on, which is not the default and further narrows the exposed population. The one point worth verifying is the confidentiality magnitude: the description says the proxied backend responses 'potentially' expose administrative, health, or configuration data - if those internal endpoints leak secrets/credentials the real impact could approach C:H, but the vendor rated C:L and the actual sensitivity of the reachable transcription-backend endpoints is not confirmed in the input, so C:L is retained. Overall: a legitimate defensive priority for the small set of self-hosted Joplin Server operators who have transcription enabled, not a broad emergency.

Exploit ScenarioDerived

An authenticated user on a Joplin Server instance that has TRANSCRIBE_ENABLED=true sends a request to GET /api/transcribe/:id with a job ID containing URL-encoded slash and parent-directory sequences (e.g. ..%2F..%2Fhealth). parseSubPath() decodes the value and the server builds a backend URL that escapes the /transcribe/ prefix, proxying the request to other transcription-backend endpoints and returning their responses, which may reveal internal administrative, health, or configuration data. No public exploit code was identified, though the fix commit's test cases (..%2Fadmin, ..%2F..%2Fhealth) effectively document the exploitation technique.

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

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

Alert me

AnalysisAIv1 – Sep 21, 2026

Path traversal in Joplin Server's transcription proxy endpoints lets an authenticated user on instances configured with TRANSCRIBE_ENABLED=true escape the intended /transcribe/ URL prefix and reach neighboring endpoints on the transcription backend, potentially exposing internal administrative, health, or configuration data. The flaw affects versions prior to 3.7.7; because the CVSS vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, the attacker must already hold a valid authenticated server session and the only demonstrated impact is limited confidentiality loss - this is a low-to-moderate real-world risk that maps well to its 4.3 score rather than an inflated rating. There is no public exploit identified at time of analysis, no CISA KEV listing, and exploitation additionally requires a reachable transcription backend (TRANSCRIBE_BASE_URL) with adjacent internal endpoints worth reading.

RemediationAI

Vendor-released patch: upgrade Joplin Server to 3.7.7 or later, which adds the validateJobId() allowlist (^[a-zA-Z0-9_-]+$) that returns HTTP 400 on malformed job IDs before any outbound fetch; references are the vendor advisory https://github.com/laurent22/joplin/security/advisories/GHSA-r7wp-3494-fwf4 and the fix commit https://github.com/laurent22/joplin/commit/d97a5091a35c2923984d3777320500b594afcdce. If upgrading immediately is not possible, the highest-value compensating control is to set TRANSCRIBE_ENABLED=false, which removes the vulnerable proxy entirely at the cost of disabling the transcription feature for all users; alternatively, network-segment the transcription backend so that only the intended /transcribe/ endpoint is reachable and no administrative, health, or configuration routes sit adjacent to it, accepting that a future routing mistake could re-expose them. Because exploitation requires a valid authenticated session, additionally tightening who can hold Joplin Server accounts (disabling self-registration, auditing active sessions) reduces the attacker pool but does not remove the flaw; note that upstream has not released an interim patched build for older branches beyond 3.7.7, and no public exploit code has been observed, so opportunistic scanning rather than targeted exploitation is the more likely near-term risk.

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

Joplin Server can optionally proxy speech-to-text jobs to a separate transcription service when TRANSCRIBE_ENABLED=true. The handlers for GET /api/transcribe/:id and POST /api/transcribe/:id in packages/server/src/routes/api/transcribe.ts took the request path segment, decoded it via the framework's parseSubPath() helper, and interpolated it directly into a fetch() call against ${TRANSCRIBE_BASE_URL}/transcribe/${id}. Because URL-encoded slash (%2F) and parent-directory (%2E%2E) sequences were decoded after routing but before the outbound URL was built, a job ID such as ..%2Fadmin or ..%2F..%2Fhealth resolved to a path outside the intended /transcribe/ prefix, turning the proxy into a generic forwarder to arbitrary paths on the transcription backend - the classic CWE-22 root cause of unsanitized path segments reaching a downstream path resolution. The upstream fix introduces a validateJobId() allowlist that rejects anything not matching ^[a-zA-Z0-9_-]+$ with an HTTP 400 before any fetch is issued, and the accompanying test asserts that ..%2Fadmin, ..%2F..%2Fhealth, and abc.def are all refused and that fetch is never called. The CPE cpe:2.3:a:laurent22:joplin:*:*:*:*:*:*:*:* covers the Joplin project broadly, but only the server component ships these routes.

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:L/I:N/A:N
vuln.today AI 4.3 MEDIUM

Network-reachable API with low complexity but requires an authenticated account (PR:L); impact is confidentiality-only disclosure of internal backend responses (C:L), no integrity or availability effect.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/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
Low
Integrity
None
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, the GET /api/transcribe/:id and POST /api/transcribe/:id handlers in packages/server/src/routes/api/transcribe.ts on Joplin Server instances with TRANSCRIBE_ENABLED=true pass the decoded id directly into transcription backend URLs. An authenticated user can place URL-encoded slash and parent-directory segments in the job ID, causing parseSubPath() to decode a path that escapes the intended /transcribe/ prefix. The server then proxies the request to other transcription-backend endpoints and can return their responses, potentially exposing internal administrative, health, or configuration data. This issue is fixed in version 3.7.7.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
Self-hosted Joplin Server with the non-default transcribe feature is niche
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.3%
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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