Read the docs
TI-2026-30143 Aliases CVE-2026-41591GHSA-x9fj-57fh-c8wq

Marko: XSS via case-insensitive script/style closing tag bypass in runtime HTML escaping

Priority MEDIUM 62CWE-79Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
Cross-site scripting
Confidentiality · integrity · availability
Low · Low · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.

Summary

Marko is a declarative, HTML-based language for building web apps. Prior to marko version 5.38.36 and prior to @marko/runtime-tags 6.0.164, when dynamic text is interpolated into a <script> or <style> tag the Marko runtime failed to prevent tag breakout when the closing tag used non-lowercase casing. An attacker able to place input inside a <script> or <style> block could break out of the tag with </SCRIPT>, </Style>, etc. and inject arbitrary HTML/JavaScript, resulting in cross-site scripting. This issue has been patched in marko version 5.38.36 and @marko/runtime-tags 6.0.164.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00227 13th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed marko (npm): 5.38.36@marko/runtime-tags (npm): 6.0.164

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
marko-jsmarkomarko < 5.38.36; @marko/runtime-tags < 6.0.164—No fix listedCNA
—marko (npm)before 5.38.365.38.36Patch availableGHSA-x9fj-57fh-c8wq
—@marko/runtime-tags (npm)before 6.0.1646.0.164Patch availableGHSA-x9fj-57fh-c8wq
  • marko Vendormarko-js Affected marko < 5.38.36; @marko/runtime-tags < 6.0.164 Fixed in — No fix listed CNA
  • marko (npm) Vendor— Affected before 5.38.36 Fixed in 5.38.36 Patch available GHSA-x9fj-57fh-c8wq
  • @marko/runtime-tags (npm) Vendor— Affected before 6.0.164 Fixed in 6.0.164 Patch available GHSA-x9fj-57fh-c8wq

CPE configurations NVD · 2

CPEVersionsRoleVendor
cpe:2.3:a:openjsf:marko:*:*:*:*:*:node.js:*:*before 5.38.36Vulnerablefast-uri
cpe:2.3:a:openjsf:marko\/runtime-tags:*:*:*:*:*:node.js:*:*before 6.0.164Vulnerablefast-uri
  • cpe:2.3:a:openjsf:marko:*:*:*:*:*:node.js:*:* Versions before 5.38.36 Vulnerable ·fast-uri
  • cpe:2.3:a:openjsf:marko\/runtime-tags:*:*:*:*:*:node.js:*:* Versions before 6.0.164 Vulnerable ·fast-uri

Remediation

  • Fix · GHSA-x9fj-57fh-c8wq marko (npm) Fixed in 5.38.36 Advisory →
  • Fix · GHSA-x9fj-57fh-c8wq @marko/runtime-tags (npm) Fixed in 6.0.164 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-41591
  2. 2026-10-03 Alias added: GHSA-x9fj-57fh-c8wq

References

Sources