A AegiFlow
MEDIUMCVSS 6.3EPSS 0.3%

CVE-2026-54756

Jodit has prototype pollution via Jodit.configure() / ConfigMerge

Published
2026-07-31
Modified
2026-07-31
EPSS percentile
19%
Aliases
GHSA-5957-5c94-3v7w
Sources
github-advisory

Summary

### 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.

Affected packages

EcosystemPackageAffected versionsFixed versions
npmjodit4.12.18

Remediation: Upgrade to 4.12.18 or later.

References

Includes data from the GitHub Advisory Database, licensed under CC-BY 4.0.

CVE® is a registered trademark of The MITRE Corporation. CVE content reproduced under the CVE Terms of Use; copyright designation © MITRE.

EPSS scores provided by the FIRST.org Exploit Prediction Scoring System.