Cross-site Scripting (XSS) in Rich Text Editor allows arbitrary code execution in Joplin
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 differences between how Joplin's HTML sanitizer handles comments and how the browser handles comments. This affects both the Rich Text Editor and the Markdown viewer. However, unlike the Rich Text Editor, the Markdown viewer is `cross-origin isolated`, which prevents JavaScript from directly accessing functions/variables in the toplevel Joplin `window`. This issue is not present in Joplin 3.1.24 and may have been introduced in `9b50539`. This is an XSS vulnerability that impacts users that open untrusted notes in the Rich Text Editor. This vulnerability has been addressed in version 3.2.12 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2025-24028
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 17:16 UTC · Revision 1
Source evidence
Cross-site Scripting (XSS) in Rich Text Editor allows arbitrary code execution in Joplin
core-osv · Original sourcePublished 7 Feb 2025, 22:23 UTC
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 differences between how Joplin's HTML sanitizer handles comments and how the browser handles comments. This affects both the Rich Text Editor and the Markdown viewer. However, unlike the Rich Text Editor, the Markdown viewer is `cross-origin isolated`, which prevents JavaScript from directly accessing functions/variables in the toplevel Joplin `window`. This issue is not present in Joplin 3.1.24 and may have been introduced in `9b50539`. This is an XSS vulnerability that impacts users that open untrusted notes in the Rich Text Editor. This vulnerability has been addressed in version 3.2.12 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
osv:CVE-2025-24028
Complete source record
{
"id": "5898f16878461e2a66762b5761023a0da8ec8d3b8bb9b282287ff1eced04ce72",
"url": "https://osv.dev/vulnerability/CVE-2025-24028",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Cross-site Scripting (XSS) in Rich Text Editor allows arbitrary code execution in Joplin",
"summary": "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 differences between how Joplin's HTML sanitizer handles comments and how the browser handles comments. This affects both the Rich Text Editor and the Markdown viewer. However, unlike the Rich Text Editor, the Markdown viewer is `cross-origin isolated`, which prevents JavaScript from directly accessing functions/variables in the toplevel Joplin `window`. This issue is not present in Joplin 3.1.24 and may have been introduced in `9b50539`. This is an XSS vulnerability that impacts users that open untrusted notes in the Rich Text Editor. This vulnerability has been addressed in version 3.2.12 and all users are advised to upgrade. There are no known workarounds for this vulnerability.",
"evidence": "osv:CVE-2025-24028",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2025-24028",
"aliases": [
"CVE-2025-24028",
"GHSA-5w3c-wph9-hq92"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/laurent22/joplin",
"type": "GIT",
"events": [
{
"introduced": "40914beb9ba64471b2860f3b6a6e0ab0062bf751"
},
{
"fixed": "d6f1ca4ba4ec31338a4feb58c35575d17727aabf"
},
{
"fixed": "2a058ed8097c2502e152b26394dc1917897f5817"
},
{
"fixed": "9b505395918bc923f34fe6f3b960bb10e8cf234e"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "3.2.6"
},
{
"fixed": "3.2.12"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "2a058ed8097c2502e152b26394dc1917897f5817"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "9b505395918bc923f34fe6f3b960bb10e8cf234e"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"cli-v3.2.3",
"ios-v13.2.5",
"android-v3.2.7",
"v3.2.11",
"v3.2.10",
"v3.2.9",
"ios-v13.2.4",
"ios-v13.2.3",
"android-v3.2.5",
"v3.2.8",
"android-v3.2.4",
"v3.2.7",
"v3.2.6"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-24028.json"
}
}
],
"modified": "2026-10-28T02:30:21.454151274Z",
"provider": "osv",
"references": [
"https://joplinapp.org/help/dev/spec/note_viewer_isolation",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/24xxx/CVE-2025-24028.json",
"https://github.com/laurent22/joplin/security/advisories/GHSA-5w3c-wph9-hq92",
"https://nvd.nist.gov/vuln/detail/CVE-2025-24028",
"https://github.com/laurent22/joplin/commit/2a058ed8097c2502e152b26394dc1917897f5817",
"https://github.com/laurent22/joplin/commit/9b505395918bc923f34fe6f3b960bb10e8cf234e"
],
"provider_metadata": {
"cwe_ids": [
"CWE-79"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/24xxx/CVE-2025-24028.json"
}
},
"related_cves": [
{
"value": "CVE-2025-24028",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 487634,
"published_at": "2025-02-07T22:23:07.275+00:00"
}