cbcvebase.
CVE-2026-4800
published 2026-03-31

CVE-2026-4800: Impact: The fix for CVE-2021-23337 (https://github.com/advisories/GHSA-35jh-r3h4-6jhm) added validation for the variable option in _.template but did not apply…

PriorityP264critical9.8CVSS 3.1
AVNACLPRNUINSUCHIHAH
EPSS
2.76%
85.1th percentile
Impact: The fix for CVE-2021-23337 (https://github.com/advisories/GHSA-35jh-r3h4-6jhm) added validation for the variable option in _.template but did not apply the same validation to options.imports key names. Both paths flow into the same Function() constructor sink. When an application passes untrusted input as options.imports key names, an attacker can inject default-parameter expressions that execute arbitrary code at template compilation time. Additionally, _.template uses assignInWith to merge imports, which enumerates inherited properties via for..in. If Object.prototype has been polluted by any other vector, the polluted keys are copied into the imports object and passed to Function(). Patches: Users should upgrade to version 4.18.0. Workarounds: Do not pass untrusted input as key names in options.imports. Only use developer-controlled, static key names.

Affected

9 ranges
VendorProductVersion rangeFixed in
debiannode-lodash< node-lodash 4.18.1+dfsg-1 (forky)node-lodash 4.18.1+dfsg-1 (forky)
lodashlodash>= 4.0.0 < 4.18.04.18.0
lodashlodash>= 4.0.0 < 4.18.04.18.0
lodashlodash-amd>= 4.0.0 < 4.18.04.18.0
lodashlodash-es>= 4.0.0 < 4.18.04.18.0
lodashlodash-es>= 4.0.0 < 4.18.04.18.0
lodashlodash.template>= 4.0.0 < 4.18.04.18.0
lodashlodash.template>= 4.0.0 < 4.18.04.18.0
ubuntunode-lodash

Detection & IOCsextracted from sources · hover to see the quote

  • Attacker-controlled key names in options.imports passed to _.template() flow into the Function() constructor sink, enabling arbitrary code execution at template compilation time — monitor for dynamic/untrusted strings used as options.imports key names in lodash _.template calls
  • The exploit path uses assignInWith with for..in enumeration, meaning a prior Object.prototype pollution can automatically propagate polluted keys into the Function() constructor — correlate prototype pollution events with subsequent _.template() invocations
  • Both the options.variable path (patched in CVE-2021-23337) and the options.imports key-name path converge on the same Function() constructor sink — detection logic for CVE-2021-23337 (GHSA-35jh-r3h4-6jhm) should be extended to cover imports key names
  • ·Red Hat notes that in grafana and grafana-pcp the affected JavaScript executes entirely client-side in the browser, restricting the attack surface to the local browser environment
  • ·The fix is present in lodash 4.18.0+; Debian forky/sid resolved with 4.18.1+dfsg-1 while bookworm, bullseye, and trixie remain open
  • ·cachelib only ships the affected JavaScript as part of its website; the files are not included in binary RPMs, reducing exposure for RPM-based deployments

CVSS provenance

nvdv3.19.8CRITICALCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ghsa7.2HIGH
osv7.2HIGH
vendor_debian7.2HIGH
vendor_redhat7.2HIGH
vendor_ubuntu5.3MEDIUM
Stop checking back — get the weekly exploitation signal.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.