CyberAlerts is shutting down on June 30th, 2025. Thank you for your support!

CVE-2025-25187: Cross-site Scripting in Goto Anything allows arbitrary code execution in Joplin

7.8 CVSS

Description

Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. This vulnerability is caused by adding note titles to the document using React's `dangerouslySetInnerHTML`, without first escaping HTML entities. Joplin lacks a Content-Security-Policy with a restrictive `script-src`. This allows arbitrary JavaScript execution via inline `onclick`/`onload` event handlers in unsanitized HTML. Additionally, Joplin's main window is created with `nodeIntegration` set to `true`, allowing arbitrary JavaScript execution to result in arbitrary code execution. Anyone who 1) receives notes from unknown sources and 2) uses ctrl-p to search is impacted. This issue has been addressed in version 3.1.24 and all users are advised to upgrade. There are no known workarounds for this vulnerability.

Classification

CVE ID: CVE-2025-25187

CVSS Base Severity: HIGH

CVSS Base Score: 7.8

CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Affected Products

Vendor: laurent22

Product: joplin

Exploit Prediction Scoring System (EPSS)

EPSS Score: 0.05% (probability of being exploited)

EPSS Percentile: 18.35% (scored less or equal to compared to others)

EPSS Date: 2025-03-08 (when was this score calculated)

References

https://github.com/laurent22/joplin/security/advisories/GHSA-9gfv-q6wj-fr3c
https://github.com/laurent22/joplin/commit/360ece6f8873ef81afbfb98b25faad696ffccdb6
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src
https://github.com/laurent22/joplin/blob/2fc9bd476b0d9abcddb0a46f615a48333779d225/packages/app-desktop/plugins/GotoAnything.tsx#L558

Timeline