Skip to content
OpenAdvisories
Medium · 6.5 CVE-2024-28244 EUVD-2024-0906GHSA-cvr6-37gx-v8wc

KaTeX's maxExpand bypassed by Unicode sub/superscripts

Published Mar 25, 2024 · Updated Aug 2, 2024 · Assigned by GitHub_M

Description

KaTeX is a JavaScript library for TeX math rendering on the web. KaTeX users who render untrusted mathematical expressions could encounter malicious input using `\def` or `\newcommand` that causes a near-infinite loop, despite setting `maxExpand` to avoid such loops. KaTeX supports an option named maxExpand which aims to prevent infinitely recursive macros from consuming all available memory and/or triggering a stack overflow error. Unfortunately, support for "Unicode (sub|super)script characters" allows an attacker to bypass this limit. Each sub/superscript group instantiated a separate Parser with its own limit on macro executions, without inheriting the current count of macro executions from its parent. This has been corrected in KaTeX v0.16.10.

Affected products

VendorProductAffectedFixed
KaTeX KaTeX >= 0.15.4, < 0.16.10 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 node-katex 0.16.10+~cs6.1.0-1 —
Debian 13 node-katex 0.16.10+~cs6.1.0-1 —
Debian 12 node-katex No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
npm katex >= 0.15.4, < 0.16.10 0.16.10 GHSA-cvr6-37gx-v8wc

References