CVE-2026-105785

Joplin Server password reset accepts tokens issued for unrelated purposes

Published Oct 5, 2026 CVSS 3.1 · 4.8 Medium EPSS < 1% KEV · Not listed
Description
Joplin is an open source note-taking and to-do application that organises notes and lists into notebooks. Prior to Joplin Server 3.7.2, packages/server/src/models/TokenModel.ts stores CSRF, account-confirmation, email-change, and password-reset tokens without a purpose, and packages/server/src/models/UserModel.ts allows UserModel.resetPassword to accept any token returned by TokenModel.userFromToken. An attacker who obtains a victim's CSRF or confirmation token through a separate disclosure channel can submit it to the public password-reset endpoint, replace the victim's password, and cause the existing sessions and API applications to be deleted. This issue is fixed in Joplin Server 3.7.2.

Analysis

AI-generated

Technical impact

The vulnerability allows an attacker, who has obtained a CSRF or account‑confirmation token via a separate breach, to submit that token to the public password‑reset endpoint of Joplin Server. Because the server’s token model stores many token types without distinguishing their purpose, the password‑reset function accepts any token that can be mapped to a user. The attacker can therefore replace the victim’s password, delete all existing sessions, and revoke all associated API applications. This effectively removes the victim’s access and disrupts all authenticated API activity.

Affected Systems

The issue affects Joplin Server deployments running any version prior to 3.7.2, distributed by laurent22. Users operating Joplin Server should verify whether their instance version is earlier than 3.7.2 and take corrective action.

Risk and Exploitability

The CVSS score of 4.8 indicates a moderate severity. No EPSS score was reported, and the vulnerability is not listed in the CISA KEV catalog. Exploitation requires the attacker to first obtain a CSRF or confirmation token through another disclosure channel. Once a valid token is in hand, the attacker can trivially reset the password through the public endpoint, making the attack feasible but dependent on prior token compromise.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Joplin Server to version 3.7.2 or later
  • Verify that all deployed instances run at least 3.7.2
  • Audit token handling to ensure only purpose‑specific tokens are accepted for password‑reset operations

Generated by OpenCVE AI on October 6, 2026 at 00:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Laurent 22
Laurent 22 joplin
Vendors & Products Laurent 22
Laurent 22 joplin
Type Values Removed Values Added
Description Joplin is an open source note-taking and to-do application that organises notes and lists into notebooks. Prior to Joplin Server 3.7.2, packages/server/src/models/TokenModel.ts stores CSRF, account-confirmation, email-change, and password-reset tokens without a purpose, and packages/server/src/models/UserModel.ts allows UserModel.resetPassword to accept any token returned by TokenModel.userFromToken. An attacker who obtains a victim's CSRF or confirmation token through a separate disclosure channel can submit it to the public password-reset endpoint, replace the victim's password, and cause the existing sessions and API applications to be deleted. This issue is fixed in Joplin Server 3.7.2.
Title Joplin Server password reset accepts tokens issued for unrelated purposes
Weaknesses CWE-620
CWE-640
References
Metrics cvssV3_1

{'score': 4.8, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N'}

Weaknesses
  • CWE-620

    Unverified Password Change

  • CWE-640

    Weak Password Recovery Mechanism for Forgotten Password

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Oct 8, 2026, 2:35 AM
Reserved
Oct 5, 2026, 8:37 PM
Status
Deferred
Published
Oct 6, 2026, 12:16 AM
Modified
Oct 8, 2026, 3:16 AM