Skip to content
Heist/ feed
Back to feed
High

Cross-site Scripting (XSS) in Rich Text Editor allows arbitrary code execution in Joplin

Type: advisorySources: OSV

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 source

Published 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"
}