{"id":"CVE-2026-41591","aliases":["GHSA-x9fj-57fh-c8wq"],"url":"https://o3.security/vulnerability/CVE-2026-41591","summary":"Marko: XSS via case-insensitive script/style closing tag bypass in runtime HTML escaping","details":"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.","published":"2026-05-08T15:22:50.990Z","modified":"2026-08-28T11:47:33.346442782Z","cvss":{"score":6.4,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"marko","fixedVersion":"5.38.36"},{"ecosystem":"npm","name":"@marko/runtime-tags","fixedVersion":"6.0.164"}],"fix":null,"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41591.json"},{"type":"ADVISORY","url":"https://github.com/marko-js/marko/security/advisories/GHSA-x9fj-57fh-c8wq"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-41591"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-28T11:47:33.346442782Z"}}