CVE-2021-23574
JavaScript vulnerability analysis and mitigation

Overview

All versions of the package js-data are vulnerable to Prototype Pollution via the deepFillIn and the set functions. This vulnerability was disclosed on September 13, 2021, and was assigned CVE-2021-23574. This is notably an incomplete fix of a previous vulnerability (CVE-2020-28442) (Snyk NPM).

Technical details

The vulnerability exists in two functions: deepFillIn and set. The issue allows attackers to inject properties into existing JavaScript language construct prototypes, including magical attributes such as proto, constructor and prototype. When exploited, this can lead to the manipulation of JavaScript application object prototypes of the base object by injecting other values. Properties on the Object.prototype are then inherited by all JavaScript objects through the prototype chain (Snyk NPM).

Impact

The vulnerability can lead to multiple severe consequences: denial of service by triggering JavaScript exceptions, tampering with application source code to force specific code paths, and potential remote code execution. When Object holds generic functions implicitly called for various operations (like toString and valueOf), an attacker can pollute Object.prototype attributes and alter their state to unexpected values, causing application failures (Snyk NPM).

Mitigation and workarounds

Currently, there is no fixed version available for js-data. However, several workarounds can be implemented: freeze the prototype using Object.freeze(Object.prototype), require schema validation of JSON input, avoid using unsafe recursive merge functions, consider using objects without prototypes (Object.create(null)), or use Map instead of Object as a best practice (Snyk NPM).

Community reactions

The vulnerability was reported through the huntr.dev bug bounty platform, indicating active security research interest in the project. Two GitHub issues (#576 and #577) were created to track this vulnerability, demonstrating community awareness and concern (GitHub Issue 576, GitHub Issue 577).

Additional resources


SourceThis report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2025-66456CRITICAL9.1
  • JavaScriptJavaScript
  • elysia
NoYesDec 09, 2025
CVE-2025-66457HIGH7.5
  • JavaScriptJavaScript
  • elysia
NoYesDec 09, 2025
CVE-2025-65849MEDIUM6.9
  • JavaScriptJavaScript
  • altcha
NoNoDec 08, 2025
CVE-2025-66202MEDIUM6.5
  • JavaScriptJavaScript
  • astro
NoYesDec 09, 2025
CVE-2025-14284MEDIUM5.1
  • JavaScriptJavaScript
  • @tiptap/extension-link
NoYesDec 09, 2025

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management