FKIE_CVE-2026-53427

Vulnerability from fkie_nvd - Published: 2026-06-29 19:16 - Updated: 2026-06-29 20:17
Summary
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in leandrocp MDEx allows stored or reflected cross-site scripting via attacker-controlled Markdown. When syntax highlighting and full info-string forwarding (render: [full_info_string: true]) are enabled, the Lumis adapter copies the value of a code fence's highlight_lines_class info-string attribute, unescaped, into the class attribute of every rendered line. comrak_nif::lumis_adapter::LumisAdapter::parse_custom_attributes in native/comrak_nif/src/lumis_adapter.rs shlex-parses the info string and stores each key=value pair verbatim, highlight_lines_config pulls highlight_lines_class into the per-line class value, and write_highlighted interpolates that value directly into the class attribute of the per-line <div>. A single-quoted shell token preserves an inner double quote through shlex parsing, so a value such as '"><script>alert(1)</script>' terminates the class attribute early and the markup that follows is emitted as live HTML. An attacker who can submit Markdown (through comments, posts, wiki pages, documentation, or any user-generated content) can inject arbitrary HTML and JavaScript that runs in the browser of every user who views the rendered output, enabling session theft, account takeover, and other client-side attacks. No authentication or special privileges are required. The vulnerable native code originally shipped inside mdex (in native/comrak_nif/src/lumis_adapter.rs) and was later extracted into the separate mdex_native package (native/mdex_native_nif/src/lumis_adapter.rs), where it remains unpatched. This issue affects mdex from 0.11.3 before 0.12.3, and mdex_native from 0.1.0 before 0.2.3.
Impacted products
Vendor Product Version

{
  "affected": [
    {
      "affectedData": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:leandrocp:mdex:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.MDEx\u0027",
            "comrak_nif"
          ],
          "packageName": "mdex",
          "packageURL": "pkg:hex/mdex",
          "product": "mdex",
          "programFiles": [
            "native/comrak_nif/src/lumis_adapter.rs"
          ],
          "programRoutines": [
            {
              "name": "comrak_nif::lumis_adapter::LumisAdapter::parse_custom_attributes"
            },
            {
              "name": "comrak_nif::lumis_adapter::LumisAdapter::highlight_lines_config"
            },
            {
              "name": "comrak_nif::lumis_adapter::LumisAdapter::write_highlighted"
            },
            {
              "name": "\u0027Elixir.MDEx\u0027:to_html/2"
            }
          ],
          "repo": "https://github.com/leandrocp/mdex",
          "vendor": "leandrocp",
          "versions": [
            {
              "lessThan": "0.12.3",
              "status": "affected",
              "version": "0.11.3",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:leandrocp:mdex:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.MDEx\u0027",
            "comrak_nif"
          ],
          "packageName": "leandrocp/mdex",
          "packageURL": "pkg:github/leandrocp/mdex",
          "product": "mdex",
          "programFiles": [
            "native/comrak_nif/src/lumis_adapter.rs"
          ],
          "programRoutines": [
            {
              "name": "comrak_nif::lumis_adapter::LumisAdapter::parse_custom_attributes"
            },
            {
              "name": "comrak_nif::lumis_adapter::LumisAdapter::highlight_lines_config"
            },
            {
              "name": "comrak_nif::lumis_adapter::LumisAdapter::write_highlighted"
            },
            {
              "name": "\u0027Elixir.MDEx\u0027:to_html/2"
            }
          ],
          "repo": "https://github.com/leandrocp/mdex",
          "vendor": "leandrocp",
          "versions": [
            {
              "lessThan": "6ed94d905f97af188323f042698ae841c02293b4",
              "status": "affected",
              "version": "0d7ffc84ea742e1daf666426814e5bb6d0499433",
              "versionType": "git"
            }
          ]
        },
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:leandrocp:mdex_native:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.MDExNative.Comrak\u0027",
            "mdex_native_nif"
          ],
          "packageName": "mdex_native",
          "packageURL": "pkg:hex/mdex_native",
          "product": "mdex_native",
          "programFiles": [
            "native/mdex_native_nif/src/lumis_adapter.rs"
          ],
          "programRoutines": [
            {
              "name": "mdex_native_nif::lumis_adapter::LumisAdapter::parse_custom_attributes"
            },
            {
              "name": "mdex_native_nif::lumis_adapter::LumisAdapter::highlight_lines_config"
            },
            {
              "name": "mdex_native_nif::lumis_adapter::LumisAdapter::write_highlighted"
            },
            {
              "name": "\u0027Elixir.MDExNative.Native\u0027:document_to_html_with_options/2"
            },
            {
              "name": "\u0027Elixir.MDExNative.Comrak\u0027:document_to_html/2"
            }
          ],
          "repo": "https://github.com/leandrocp/mdex_native",
          "vendor": "leandrocp",
          "versions": [
            {
              "lessThan": "0.2.3",
              "status": "affected",
              "version": "0.1.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:leandrocp:mdex_native:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.MDExNative.Comrak\u0027",
            "mdex_native_nif"
          ],
          "packageName": "leandrocp/mdex_native",
          "packageURL": "pkg:github/leandrocp/mdex_native",
          "product": "mdex_native",
          "programFiles": [
            "native/mdex_native_nif/src/lumis_adapter.rs"
          ],
          "programRoutines": [
            {
              "name": "mdex_native_nif::lumis_adapter::LumisAdapter::parse_custom_attributes"
            },
            {
              "name": "mdex_native_nif::lumis_adapter::LumisAdapter::highlight_lines_config"
            },
            {
              "name": "mdex_native_nif::lumis_adapter::LumisAdapter::write_highlighted"
            },
            {
              "name": "\u0027Elixir.MDExNative.Native\u0027:document_to_html_with_options/2"
            },
            {
              "name": "\u0027Elixir.MDExNative.Comrak\u0027:document_to_html/2"
            }
          ],
          "repo": "https://github.com/leandrocp/mdex_native",
          "vendor": "leandrocp",
          "versions": [
            {
              "lessThan": "798a363b4339f6f7162ec8437c4c9f9b5ae6fbf3",
              "status": "affected",
              "version": "956528c5e31746253347029e810a969ab916fd27",
              "versionType": "git"
            }
          ]
        }
      ],
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    }
  ],
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027) vulnerability in leandrocp MDEx allows stored or reflected cross-site scripting via attacker-controlled Markdown.\n\nWhen syntax highlighting and full info-string forwarding (render: [full_info_string: true]) are enabled, the Lumis adapter copies the value of a code fence\u0027s highlight_lines_class info-string attribute, unescaped, into the class attribute of every rendered line. comrak_nif::lumis_adapter::LumisAdapter::parse_custom_attributes in native/comrak_nif/src/lumis_adapter.rs shlex-parses the info string and stores each key=value pair verbatim, highlight_lines_config pulls highlight_lines_class into the per-line class value, and write_highlighted interpolates that value directly into the class attribute of the per-line \u003cdiv\u003e. A single-quoted shell token preserves an inner double quote through shlex parsing, so a value such as \u0027\"\u003e\u003cscript\u003ealert(1)\u003c/script\u003e\u0027 terminates the class attribute early and the markup that follows is emitted as live HTML.\n\nAn attacker who can submit Markdown (through comments, posts, wiki pages, documentation, or any user-generated content) can inject arbitrary HTML and JavaScript that runs in the browser of every user who views the rendered output, enabling session theft, account takeover, and other client-side attacks. No authentication or special privileges are required.\n\nThe vulnerable native code originally shipped inside mdex (in native/comrak_nif/src/lumis_adapter.rs) and was later extracted into the separate mdex_native package (native/mdex_native_nif/src/lumis_adapter.rs), where it remains unpatched.\n\nThis issue affects mdex from 0.11.3 before 0.12.3, and mdex_native from 0.1.0 before 0.2.3."
    }
  ],
  "id": "CVE-2026-53427",
  "lastModified": "2026-06-29T20:17:38.650",
  "metrics": {
    "cvssMetricV40": [
      {
        "cvssData": {
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "attackComplexity": "LOW",
          "attackRequirements": "PRESENT",
          "attackVector": "NETWORK",
          "availabilityRequirement": "NOT_DEFINED",
          "baseScore": 2.3,
          "baseSeverity": "LOW",
          "confidentialityRequirement": "NOT_DEFINED",
          "exploitMaturity": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "privilegesRequired": "NONE",
          "providerUrgency": "NOT_DEFINED",
          "subAvailabilityImpact": "NONE",
          "subConfidentialityImpact": "LOW",
          "subIntegrityImpact": "LOW",
          "userInteraction": "PASSIVE",
          "valueDensity": "NOT_DEFINED",
          "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
          "version": "4.0",
          "vulnAvailabilityImpact": "NONE",
          "vulnConfidentialityImpact": "NONE",
          "vulnIntegrityImpact": "NONE",
          "vulnerabilityResponseEffort": "NOT_DEFINED"
        },
        "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "type": "Secondary"
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-53427",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "timestamp": "2026-06-29T19:18:13.166991Z",
          "version": "2.0.3"
        }
      }
    ]
  },
  "published": "2026-06-29T19:16:41.597",
  "references": [
    {
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "url": "https://cna.erlef.org/cves/CVE-2026-53427.html"
    },
    {
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "url": "https://github.com/leandrocp/mdex_native/commit/798a363b4339f6f7162ec8437c4c9f9b5ae6fbf3"
    },
    {
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "url": "https://github.com/leandrocp/mdex_native/security/advisories/GHSA-v664-pmxr-mxxx"
    },
    {
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "url": "https://osv.dev/vulnerability/EEF-CVE-2026-53427"
    }
  ],
  "sourceIdentifier": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
  "vulnStatus": "Deferred",
  "weaknesses": [
    {
      "description": [
        {
          "lang": "en",
          "value": "CWE-79"
        }
      ],
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "type": "Secondary"
    }
  ]
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…