{"id":"CVE-2021-32723","aliases":["CLSA-2026-1793304056","EUVD-2021-1326","GHSA-gj77-59wh-66hg","ROOT-APP-NPM-CVE-2021-32723","UBUNTU-CVE-2021-32723"],"status":"published","title":"Regular Expression Denial of Service (ReDoS) in Prism","description":"Prism is a syntax highlighting library. Some languages before 1.24.0 are vulnerable to Regular Expression Denial of Service (ReDoS). When Prism is used to highlight untrusted (user-given) text, an attacker can craft a string that will take a very very long time to highlight. This problem has been fixed in Prism v1.24. As a workaround, do not use ASCIIDoc or ERB to highlight untrusted text. Other languages are not affected and can be used to highlight untrusted text.","severity":{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.01421,"percentile":0.73199,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-400"],"published":"2021-06-28T18:33:18Z","modified":"2026-10-30T02:15:07Z","fixes":[{"ecosystem":"npm","package":"prismjs","fixed_in":["1.24.0"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"prismjs","fixed_in":["1.17.1-aikido.1"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/prismjs","fixed_in":["1.17.1-root.io.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.0"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.17.1-tuxcare.0"},{"fixed":"1.17.1-tuxcare.1"}]}],"versions":["1.17.1"],"bundled":6},{"source":"osv","ecosystem":"npm","package":"prismjs","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.24.0"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.17.1-aikido.1"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.17.1-root.io.1"}]}]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"node-prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.11.0+dfsg-2","1.11.0+dfsg-3"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"node-prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.23.0+dfsg-1","1.25.0+dfsg-1","1.27.0+dfsg+~1.26.0-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"node-prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.29.0+dfsg+~1.26.0-1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"node-prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.29.0+dfsg+~1.26.0-1","1.30.0+dfsg+~1.26.5-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"node-prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.30.0+dfsg+~1.26.6-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"node-prismjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.30.0+dfsg+~1.26.5-1","1.30.0+dfsg+~1.26.5-2","1.30.0+dfsg+~1.26.6-1"]}],"products":[{"vendor":"oracle","product":"application_express"},{"vendor":"prismjs","product":"prism"}],"references":[{"url":"https://github.com/PrismJS/prism/security/advisories/GHSA-gj77-59wh-66hg","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web","report"]},{"url":"https://github.com/PrismJS/prism/pull/2688","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://github.com/PrismJS/prism/pull/2774","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://www.oracle.com/security-alerts/cpujan2022.html","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/PrismJS/prism/commit/d85e30da6755fdbe7f8559f8e75d122297167018","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-32723","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-gj77-59wh-66hg"},{"url":"https://github.com/PrismJS/prism","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2021-32723","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-32723","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2021-32723","title":"Regular Expression Denial of Service (ReDoS) in Prism","description":"Prism is a syntax highlighting library. Some languages before 1.24.0 are vulnerable to Regular Expression Denial of Service (ReDoS). When Prism is used to highlight untrusted (user-given) text, an attacker can craft a string that will take a very very long time to highlight. This problem has been fixed in Prism v1.24. As a workaround, do not use ASCIIDoc or ERB to highlight untrusted text. Other languages are not affected and can be used to highlight untrusted text.","status":"published","published":"2021-06-28T19:15:15Z","modified":"2024-08-03T23:33:54.878Z","cvss":[{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:33:07.014772Z"}],"euvd":[{"id":"EUVD-2021-1326","description":"Prism is a syntax highlighting library. Some languages before 1.24.0 are vulnerable to Regular Expression Denial of Service (ReDoS). When Prism is used to highlight untrusted (user-given) text, an attacker can craft a string that will take a very very long time to highlight. This problem has been fixed in Prism v1.24. As a workaround, do not use ASCIIDoc or ERB to highlight untrusted text. Other languages are not affected and can be used to highlight untrusted text.","status":"published","published":"2021-06-28T19:15:15Z","modified":"2024-08-03T23:33:54Z","cvss":[{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-03T03:24:35.855495Z"}],"ghsa":[{"id":"GHSA-gj77-59wh-66hg","title":"Regular Expression Denial of Service (ReDoS) in Prism","description":"Some languages before 1.24.0 are vulnerable to Regular Expression Denial of Service (ReDoS).\n\n### Impact\n\nWhen Prism is used to highlight untrusted (user-given) text, an attacker can craft a string that will take a very very long time to highlight. Do not use the following languages to highlight untrusted text.\n\n- ASCIIDoc\n- ERB\n\nOther languages are __not__ affected and can be used to highlight untrusted text.\n\n### Patches\nThis problem has been fixed in Prism v1.24.\n\n### References\n\n- PrismJS/prism#2774\n- PrismJS/prism#2688\n","status":"published","published":"2021-06-28T18:33:18Z","modified":"2023-02-01T05:05:49Z","cvss":[{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:36:35.781528Z"}],"nvd":[{"id":"CVE-2021-32723","description":"Prism is a syntax highlighting library. Some languages before 1.24.0 are vulnerable to Regular Expression Denial of Service (ReDoS). When Prism is used to highlight untrusted (user-given) text, an attacker can craft a string that will take a very very long time to highlight. This problem has been fixed in Prism v1.24. As a workaround, do not use ASCIIDoc or ERB to highlight untrusted text. Other languages are not affected and can be used to highlight untrusted text.","status":"published","published":"2021-06-28T20:15:07.857Z","modified":"2026-06-17T03:53:30.117Z","cvss":[{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:H","level":"high","assessor":"secondary"},{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary"},{"version":"2.0","score":4.3,"vector":"AV:N/AC:M/Au:N/C:N/I:N/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:06:55.259633Z"}],"osv":[{"id":"CVE-2021-32723","description":"Prism is a syntax highlighting library. Some languages before 1.24.0 are vulnerable to Regular Expression Denial of Service (ReDoS). When Prism is used to highlight untrusted (user-given) text, an attacker can craft a string that will take a very very long time to highlight. This problem has been fixed in Prism v1.24. As a workaround, do not use ASCIIDoc or ERB to highlight untrusted text. Other languages are not affected and can be used to highlight untrusted text.","status":"published","published":"2021-06-28T20:15:07.857Z","modified":"2026-10-20T10:54:42.823202511Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:19.793849Z"},{"id":"GHSA-gj77-59wh-66hg","title":"Regular Expression Denial of Service (ReDoS) in Prism","description":"Some languages before 1.24.0 are vulnerable to Regular Expression Denial of Service (ReDoS).\n\n### Impact\n\nWhen Prism is used to highlight untrusted (user-given) text, an attacker can craft a string that will take a very very long time to highlight. Do not use the following languages to highlight untrusted text.\n\n- ASCIIDoc\n- ERB\n\nOther languages are __not__ affected and can be used to highlight untrusted text.\n\n### Patches\nThis problem has been fixed in Prism v1.24.\n\n### References\n\n- PrismJS/prism#2774\n- PrismJS/prism#2688\n","status":"published","published":"2021-06-28T18:33:18Z","modified":"2026-07-08T06:28:40.129617187Z","cvss":[{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T15:46:47.822182Z"},{"id":"UBUNTU-CVE-2021-32723","description":"Prism is a syntax highlighting library. Some languages before 1.24.0 are vulnerable to Regular Expression Denial of Service (ReDoS). When Prism is used to highlight untrusted (user-given) text, an attacker can craft a string that will take a very very long time to highlight. This problem has been fixed in Prism v1.24. As a workaround, do not use ASCIIDoc or ERB to highlight untrusted text. Other languages are not affected and can be used to highlight untrusted text.","status":"published","published":"2021-06-28T20:15:00Z","modified":"2026-10-17T12:55:46.622239033Z","cvss":[{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:H","level":"high"},{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:54:27.332852Z"},{"id":"CLSA-2026-1793304056","title":"TuxCare security update for prismjs (6 CVEs)","description":"TuxCare rebuilt prismjs to address 6 CVEs. Fixed in 1.17.1-tuxcare.1.","status":"published","published":"2026-10-29T21:00:57Z","modified":"2026-10-30T02:15:07.694579967Z","updated_at":"2026-11-02T15:43:55.669514Z"},{"id":"ROOT-APP-NPM-CVE-2021-32723","title":"CVE-2021-32723 in prismjs - Patched by Root","description":"Root has patched CVE-2021-32723 in the prismjs package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-08-27T18:52:03Z","modified":"2026-08-27T19:30:04.088157318Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
