GitHub Advisoryadvisory · npm

GHSA-5957-5c94-3v7w Jodit has prototype pollution via Jodit.configure() / ConfigMerge

MEDIUM Published 2026-07-31 Modified 2026-07-31 Official page ↗
Aliases
CVE-2026-54756
Ecosystem
npm
Packages
jodit
Severity
Moderate
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Weaknesses
CWE-1321
Reviewed
2026-07-31

Affected packages

• npm jodit: < 4.12.18 → fixed in 4.12.18

Description

Summary `Jodit.configure(options)` — and the internal `ConfigMerge` / `ConfigProto` helpers — merged user-supplied options into the editor configuration without filtering prototype-mutating keys. A payload nested under an existing plain-object option such as `controls` could reach and mutate `Object.prototype` (prototype pollution). Affected • Package: `jodit` (npm) • Versions: `< 4.12.18` • Public API: `Jodit.configure(options)` Proof of Concept ```js import { Jodit } from 'jodit'; delete Object.prototype.polluted; Jodit.configure(JSON.parse('{"controls":{"__proto__":{"polluted":"yes"}}}')); console.log(({}).polluted); // "yes" (before the fix) delete Object.prototype.polluted; ``` Impact Applications that pass user-controlled or partially user-controlled configuration into `Jodit.configure()` could be vulnerable to prototype pollution: unexpected property injection, logic bypass, denial of service, or secondary security issues. Patch Fixed in 4.12.18 by rejecting `__proto__`, `constructor`, and `prototype` at every merge level in `ConfigMerge` and `ConfigProto`. Credit Responsibly reported by Junming Wu.

Related

Alias · CVE (1)

  • CVE-2026-54756 Jodit Editor is a WYSIWYG editor with written in pure TypeScript file and image editing capabilities. vulnerability

Weakness · CWE (1)

  • CWE-1321 Improperly Controlled Modification of Object Prototype Attributes weakness

References