🐛 Bug Fix
- Security: an SVG animation could write a
javascript:URL into a link after the sanitizer had run.<svg><a><animate attributeName="href" values="javascript:…">passedsafeHTML, which checked only the static URL attributes, and a click on the link ran the script in Chromium and Safari (CWE-79, stored XSS in the default configuration). Thevalues,from,toandbyof<animate>,<set>,<animateMotion>and<animateTransform>now go through the same scheme check and are dropped when one of them holds a dangerous URL. Reported by David Vieira Kurz (HiSolutions AG), GHSA-6wrw-v5gj-6xg7. - Security:
extendLang()merged a language pack withObject.assignand no key filter, so a pack parsed from untrusted JSON with a__proto__key wrote intoObject.prototype(CWE-1321). The keys__proto__,constructorandprototypeare skipped on both levels, asset()andJodit.configure()already did; the helper is also reachable asJodit.extendLang. Reported by zx, GHSA-6gxg-6pj3-m22j. - ESM build: a language file whose dictionary holds a
defaultentry (no.js, "Standard") was taken for a module, so the Norwegian pack was replaced by that string, and thedefaultof a CommonJS pack a plugin imports overwrote the translation. Both now unwrap a module only whendefaultis a dictionary.