Skip to content
Heist/ feed
Back to feed
Medium

Mercury: Stored / DOM Cross-Site Scripting (XSS): mr.Markdown renders untrusted content as raw, unsanitized HTML

Type: advisorySources: OSV

Mercury is a Python framework for sharing Jupyter notebooks as web applications and dashboards. From 3.0.0 until 3.2.11, mr.Markdown converts attacker-controlled Markdown to HTML without sanitizing raw HTML before assigning it to an ipywidgets.HTML sink. Event-handler attributes and other active HTML can therefore reach the DOM and execute when another user views the application. This issue is fixed in version 3.2.11.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-111059
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 04:34 UTC · Revision 1

Source evidence

Mercury: Stored / DOM Cross-Site Scripting (XSS): mr.Markdown renders untrusted content as raw, unsanitized HTML

core-osv · Original source

Published 19 Oct 2026, 16:11 UTC

Mercury is a Python framework for sharing Jupyter notebooks as web applications and dashboards. From 3.0.0 until 3.2.11, mr.Markdown converts attacker-controlled Markdown to HTML without sanitizing raw HTML before assigning it to an ipywidgets.HTML sink. Event-handler attributes and other active HTML can therefore reach the DOM and execute when another user views the application. This issue is fixed in version 3.2.11.

osv:CVE-2026-111059
Complete source record
{
  "id": "154ebc9126fe836dcade71576ae26f3ff5a80f24274ba21359e081f196a301af",
  "url": "https://osv.dev/vulnerability/CVE-2026-111059",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Mercury: Stored / DOM Cross-Site Scripting (XSS): mr.Markdown renders untrusted content as raw, unsanitized HTML",
    "summary": "Mercury is a Python framework for sharing Jupyter notebooks as web applications and dashboards. From 3.0.0 until 3.2.11, mr.Markdown converts attacker-controlled Markdown to HTML without sanitizing raw HTML before assigning it to an ipywidgets.HTML sink. Event-handler attributes and other active HTML can therefore reach the DOM and execute when another user views the application. This issue is fixed in version 3.2.11.",
    "evidence": "osv:CVE-2026-111059",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-111059",
      "aliases": [
        "CVE-2026-111059",
        "GHSA-2658-85cv-9wwq"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/mljar/mercury",
              "type": "GIT",
              "events": [
                {
                  "introduced": "d6921dd842d5835d43a7558c5a4ddbcff8b5e540"
                },
                {
                  "fixed": "944c6b7ada1d6525d43dae2b895be68747906ca1"
                },
                {
                  "fixed": "c798a85924e6614c6fea7afe5a560e4554a1d09b"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "3.0.0"
                      },
                      {
                        "fixed": "3.2.11"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "c798a85924e6614c6fea7afe5a560e4554a1d09b"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "944c6b7ada1d6525d43dae2b895be68747906ca1"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v3.2.11"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v3.2.10",
            "v3.2.9",
            "v3.2.8",
            "v3.2.7",
            "v3.2.5",
            "3.2.6",
            "v3.2.3",
            "v3.2.2",
            "v3.2.1",
            "v3.2.0",
            "v3.1.2",
            "v3.1.1",
            "v3.1.0",
            "v3.0.1",
            "v3.0.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-111059.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:25.611247186Z",
      "provider": "osv",
      "references": [
        "https://github.com/mljar/mercury/releases/tag/v3.2.11",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/111xxx/CVE-2026-111059.json",
        "https://github.com/mljar/mercury/security/advisories/GHSA-2658-85cv-9wwq",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-111059",
        "https://github.com/mljar/mercury/commit/c798a85924e6614c6fea7afe5a560e4554a1d09b"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-116",
          "CWE-79"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/111xxx/CVE-2026-111059.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-111059",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 492488,
  "published_at": "2026-10-19T16:11:29.745+00:00"
}