Cloudanix VulnDB

CVE-2026-103923

None

CVSS

—

EPSS

—

Published

Oct 1, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A math display library used on websites could let attackers inject clickable scripts if someone first tampers with how JavaScript objects are created, potentially exposing users who view the affected pages.

Chainable
Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Moderate
Impact
Other
Component
Library
Class
XSS
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Prototype pollution in renderer options, trust setting, and namespace handling allows attacker-controlled inherited properties to enable trusted rendering mode, producing interactive links or external resource loads that execute cross-site scripting when unsanitized output is inserted into a page.

Why it matters to the business

Web applications embedding KaTeX math rendering face risk of script injection and unauthorized resource loading if an upstream prototype pollution flaw or attacker-controlled options object is present, potentially leading to session compromise or data exfiltration in affected sites.

How an attack unfolds

An attacker first establishes a polluted Object.prototype (via separate vulnerability or control of the options prototype), then supplies a crafted mathematical expression that inherits a malicious trust value; KaTeX's property access treats the inherited value as explicit, enabling trusted features that generate user-interactive XSS links or external loads when the rendered output is placed unsanitized into the DOM.

How to fix it

Upgrade KaTeX to version 0.18.2 or later; audit consuming applications for unsanitized insertion of KaTeX output and ensure options objects are created without prototype inheritance (e.g., via Object.create(null)).

How to confirm the fix worked

Confirm the installed KaTeX version is 0.18.2 or newer; test rendering with a deliberately polluted Object.prototype containing trust keys and verify that trusted features are no longer activated by inherited values.

Typical attack path

  1. Identify or create prototype pollution affecting Object.prototype with trust-related keys
  2. Craft a mathematical expression that triggers trusted rendering via inherited properties
  3. Submit the expression to the vulnerable KaTeX instance
  4. Capture the rendered output containing attacker-controlled links or resources
  5. Deliver the output to a victim page that inserts it without sanitization

How to detect it

Review application logs and rendered HTML for unexpected trusted links or external resource references originating from KaTeX math expressions; inspect JavaScript execution for options objects inheriting trust properties; correlate with known prototype-pollution indicators in the same request flow.

What your security team should do

  • Immediately inventory all applications using KaTeX 0.11.0-0.18.1 and schedule upgrade to 0.18.2
  • Review math rendering pipelines for direct insertion of KaTeX output without sanitization
  • Add prototype-pollution defenses and safe object creation patterns in shared JavaScript libraries
  • Monitor for new exploit maturity signals given the 30-day publication window

The record

KaTeX is a fast, easy-to-use JavaScript library for TeX math rendering on the web. From 0.11.0 until 0.18.2, KaTeX uses ordinary JavaScript property access for the renderer options object, the trust setting, default and processor setting metadata, and namespace lookup and group restoration, allowing inherited properties to be treated as explicitly supplied values. When Object.prototype is already polluted or an attacker controls the options object's prototype, attacker-controlled mathematical expressions can use an inherited trust value to enable trusted rendering and produce links capable of user-interaction cross-site scripting or loading attacker-selected external resources in a consuming application that inserts unsanitized KaTeX output into a page. KaTeX does not itself create the prototype pollution, and rendering an expression alone does not execute script. This issue is fixed in version 0.18.2.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities