<Vulnerability name="CVE-2026-59710">
    <DocumentDistribution xml:lang="en">Copyright © 2012 Red Hat, Inc. All rights reserved.</DocumentDistribution>
    <ThreatSeverity>Moderate</ThreatSeverity>
    <PublicDate>2026-07-06T21:15:45</PublicDate>
    <Bugzilla id="2497554" url="https://bugzilla.redhat.com/show_bug.cgi?id=2497554" xml:lang="en:us">
showdown: Showdown: Stored Cross-Site Scripting via unescaped table header ID attributes in markdown
    </Bugzilla>
    <CVSS3 status="draft">
        <CVSS3BaseScore>6.1</CVSS3BaseScore>
        <CVSS3ScoringVector>CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N</CVSS3ScoringVector>
    </CVSS3>
    <CWE>CWE-79</CWE>
    <Details xml:lang="en:us" source="Mitre">
showdown contains a stored cross-site scripting vulnerability in the parseHeaders function of src/subParsers/makehtml/tables.js that fails to properly escape table header ID attributes. Attackers can inject arbitrary HTML and script-executing SVG elements through double-quote characters in markdown table headers, achieving stored XSS when untrusted markdown is rendered with the default github flavor configuration.
    </Details>
    <Details xml:lang="en:us" source="Red Hat">
A flaw was found in Showdown. This vulnerability, a stored cross-site scripting (XSS) issue, allows an attacker to inject malicious code into web pages. By exploiting unescaped table header ID attributes in markdown, an attacker can embed arbitrary HTML and script-executing elements. When untrusted markdown is processed, this can lead to the execution of malicious scripts in a user's web browser, potentially compromising user data or session integrity.
    </Details>
    <Statement xml:lang="en:us">
Showdown, as integrated into Red Hat products, is susceptible to a stored cross-site scripting vulnerability. This flaw allows an attacker to inject arbitrary HTML and script-executing SVG elements by exploiting unescaped table header ID attributes within markdown. When untrusted markdown is rendered using the default GitHub flavor configuration, malicious scripts can execute in a user's web browser, potentially compromising data or session integrity. Affected versions: &lt;= 2.1.0.
    </Statement>
    <Mitigation xml:lang="en:us">
To mitigate this vulnerability, avoid rendering untrusted markdown content within applications utilizing Showdown. If processing untrusted markdown is unavoidable, ensure that all input is thoroughly sanitized before rendering to prevent the injection of malicious HTML or script-executing elements.
    </Mitigation>
    <PackageState cpe="cpe:/a:redhat:cryostat:4">
        <ProductName>Cryostat 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>cryostat-openshift-console-plugin-npm</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:cryostat:4">
        <ProductName>Cryostat 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>showdown</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:multicluster_engine">
        <ProductName>Multicluster Engine for Kubernetes</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>multicluster-engine/console-mce-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:workload_availability_nhc:0">
        <ProductName>Node HealthCheck Operator</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>workload-availability/node-healthcheck-must-gather-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:workload_availability_nhc:0">
        <ProductName>Node HealthCheck Operator</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>workload-availability/node-healthcheck-operator-bundle</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:workload_availability_nhc:0">
        <ProductName>Node HealthCheck Operator</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>workload-availability/node-healthcheck-rhel9-operator</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:red_hat_3scale_amp:2">
        <ProductName>Red Hat 3scale API Management Platform 2</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>3scale-amp2/system-rhel7</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:acm:2">
        <ProductName>Red Hat Advanced Cluster Management for Kubernetes 2</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhacm2/console-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:ansible_automation_platform:2">
        <ProductName>Red Hat Ansible Automation Platform 2</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>automation-eda-controller</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:ansible_automation_platform:2">
        <ProductName>Red Hat Ansible Automation Platform 2</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>automation-gateway</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift_ai">
        <ProductName>Red Hat OpenShift AI (RHOAI)</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhoai/odh-dashboard-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift_ai">
        <ProductName>Red Hat OpenShift AI (RHOAI)</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhoai/odh-mlflow-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift_ai">
        <ProductName>Red Hat OpenShift AI (RHOAI)</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhoai/odh-mod-arch-automl-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift_ai">
        <ProductName>Red Hat OpenShift AI (RHOAI)</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhoai/odh-mod-arch-autorag-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift_ai">
        <ProductName>Red Hat OpenShift AI (RHOAI)</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhoai/odh-mod-arch-eval-hub-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift_ai">
        <ProductName>Red Hat OpenShift AI (RHOAI)</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhoai/odh-mod-arch-gen-ai-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift_ai">
        <ProductName>Red Hat OpenShift AI (RHOAI)</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhoai/odh-mod-arch-maas-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift_ai">
        <ProductName>Red Hat OpenShift AI (RHOAI)</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhoai/odh-mod-arch-mlflow-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift_ai">
        <ProductName>Red Hat OpenShift AI (RHOAI)</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rhoai/odh-mod-arch-model-registry-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift:4">
        <ProductName>Red Hat OpenShift Container Platform 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>openshift4/ose-console</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift:4">
        <ProductName>Red Hat OpenShift Container Platform 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>openshift4/ose-console-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift:4">
        <ProductName>Red Hat OpenShift Container Platform 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>openshift4/ose-monitoring-plugin-rhel8</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:container_native_virtualization:4">
        <ProductName>Red Hat OpenShift Virtualization 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>container-native-virtualization/kubevirt-console-plugin</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:container_native_virtualization:4">
        <ProductName>Red Hat OpenShift Virtualization 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>container-native-virtualization/kubevirt-console-plugin-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:quay:3">
        <ProductName>Red Hat Quay 3</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>quay/quay-rhel8</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:quay:3">
        <ProductName>Red Hat Quay 3</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>quay/quay-rhel9</PackageName>
    </PackageState>
    <References xml:lang="en:us">
https://www.cve.org/CVERecord?id=CVE-2026-59710
https://nvd.nist.gov/vuln/detail/CVE-2026-59710
https://github.com/showdownjs/showdown
https://github.com/showdownjs/showdown/commit/e5cab1e9a5dcea2bb3cbf888863fa7e65ab37edf
https://github.com/showdownjs/showdown/issues/1046
https://www.vulncheck.com/advisories/showdown-stored-xss-via-unescaped-table-header-id-attribute-injection
    </References>
</Vulnerability>