VDB

CVE-2026-103923

CVE-2026-103923 PUBLISHED CVSS 2.1 LOW

KaTeX: Existing prototype pollution can bypass trust restrictions

Reported by github_m · Published October 1, 2026

katex is fixed in 0.18.2 (npm)

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.

Fixed versions

Upgrade to a fixed version or later. Language registries are listed first, then Linux distributions, then vendor products.

PackageEcosystemFixed in
katexnpm0.18.2
tensorflow-gpu-jupyterChainguard2.21.0-r12
gitlab-rails-ce-19.2Chainguard19.2.8-r3
commercial-gitlab-rails-ee-19.3Chainguard19.3.3-r1
code-serverChainguard4.140.0-r4
jupyter-base-notebookWolfi7.6.3-r2
commercial-gitlab-rails-ee-19.4Chainguard19.4.1-r1
langfuse-3Chainguard3.225.12-r2
commercial-gitlab-rails-ee-fips-19.3Chainguard19.3.3-r1
gitlab-rails-ce-fips-18.9Chainguard18.9.8-r8
gitlab-rails-ce-fips-18.10Chainguard18.10.8-r8
langfuse-4Chainguard4.55.0-r1

19 more packages have a fixed version. See every fix in Lookup.

Risk scores

CVSS 4.0
2.1
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Affected products

VendorProductVersions
KaTeXKaTeX>= 0.11.0, < 0.18.2
chainguardtensorflow-gpu-jupyter0
chainguardgitlab-rails-ce-19.20
chainguardcommercial-gitlab-rails-ee-19.30
chainguardcode-server0
wolfijupyter-base-notebook0
chainguardcommercial-gitlab-rails-ee-19.40
chainguardlangfuse-30
chainguardcommercial-gitlab-rails-ee-fips-19.30
chainguardgitlab-rails-ce-fips-18.90
chainguardgitlab-rails-ce-fips-18.100
chainguardlangfuse-40
chainguardcommercial-gitlab-rails-ee-fips-19.10
chainguardgitlab-rails-ce-19.40
wolfilangfuse-30
chainguardlibrechat0
chainguardjupyter-base-notebook0
chainguardgitlab-rails-ce-fips-19.30
chainguardgitlab-rails-ce-fips-19.00
chainguardcommercial-gitlab-rails-ee-19.20

…and 14 more

Timeline

  • Oct 1, 2026 CVE Published
  • Oct 2, 2026 EPSS Score (10 in total, the first dated here)
  • Oct 6, 2026 CVE Updated
  • Oct 31, 2026 Security Advisory

Query this with the API

The same record, from the CLI:

vulnetix vdb vuln CVE-2026-103923
vulnetix vdb fixes CVE-2026-103923

Or with curl, using the org id and key from your account page:

curl -s -H "Authorization: ApiKey ${VULNETIX_ORG_ID}:${VULNETIX_API_KEY}" \
  "https://api.vdb.vulnetix.com/v2/vuln/CVE-2026-103923/fixes/registry"

The Community plan is free and allows 50 queries a day. Get a free API key · API quickstart

Look up in the Resolve Platform →
$ Lookup Community · 50/day Open Lookup ›