{"id":"CVE-2025-25187","state":"PUBLISHED","title":"Cross-site Scripting in Goto Anything allows arbitrary code execution in Joplin","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 <kbd>ctrl</kbd>-<kbd>p</kbd> 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.","publishedAt":"2025-02-07T22:38:20.068Z","updatedAt":"2025-02-10T17:15:09.979Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","source":"GitHub_M"},"assigner":"GitHub_M","products":["laurent22 joplin"],"affected":[{"vendor":"laurent22","product":"joplin","versions":[{"version":"< 3.1.24","status":"affected"}]}],"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"],"weaknesses":["CWE-79"],"ingestedAt":"2026-10-29T20:08:47.682Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/25xxx/CVE-2025-25187.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2025-25187","state":"PUBLISHED","datePublished":"2025-02-07T22:38:20.068Z","dateUpdated":"2025-02-10T17:15:09.979Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2025-02-03T19:30:53.399Z"},"containers":{"cna":{"title":"Cross-site Scripting in Goto Anything allows arbitrary code execution in Joplin","descriptions":[{"lang":"en","value":"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 <kbd>ctrl</kbd>-<kbd>p</kbd> 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."}],"affected":[{"vendor":"laurent22","product":"joplin","versions":[{"version":"< 3.1.24","status":"affected"}]}],"references":[{"url":"https://github.com/laurent22/joplin/security/advisories/GHSA-9gfv-q6wj-fr3c","name":"https://github.com/laurent22/joplin/security/advisories/GHSA-9gfv-q6wj-fr3c","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/laurent22/joplin/commit/360ece6f8873ef81afbfb98b25faad696ffccdb6","name":"https://github.com/laurent22/joplin/commit/360ece6f8873ef81afbfb98b25faad696ffccdb6","tags":["x_refsource_MISC"]},{"url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src","name":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src","tags":["x_refsource_MISC"]},{"url":"https://github.com/laurent22/joplin/blob/2fc9bd476b0d9abcddb0a46f615a48333779d225/packages/app-desktop/plugins/GotoAnything.tsx#L558","name":"https://github.com/laurent22/joplin/blob/2fc9bd476b0d9abcddb0a46f615a48333779d225/packages/app-desktop/plugins/GotoAnything.tsx#L558","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"LOCAL","availabilityImpact":"HIGH","baseScore":7.8,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"REQUIRED","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","lang":"en","description":"CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2025-02-07T22:38:20.068Z"},"source":{"advisory":"GHSA-9gfv-q6wj-fr3c","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/laurent22/joplin/security/advisories/GHSA-9gfv-q6wj-fr3c","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2025-02-10T17:14:00.437337Z","id":"CVE-2025-25187","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-02-10T17:15:09.979Z"}}]}}}