CVE-2026-46681
Published:May 22, 2026
Updated:May 24, 2026
Summary The _copyProps function in lib/src/object/copy.ts uses for...in to iterate over source object properties without an Object.hasOwnProperty check, and does not filter dangerous keys (proto, constructor, prototype). This allows an attacker to pollute the prototype chain of all objects in the application. Details In _copyProps() (copy.ts lines 186-191), the code iterates all enumerable properties including inherited ones and dangerous keys like proto. Any object with a proto key (e.g., from untrusted JSON input) will overwrite the target's prototype. PoC const malicious = JSON.parse('{"proto": {"polluted": true}}'); objDeepCopy(malicious); console.log({}.polluted); // true Suggested Fix Add objHasOwnProperty check and filter proto, constructor, prototype keys.
Affected Packages
https://github.com/nevware21/ts-utils.git (GITHUB):
Affected version(s) >=0.1.0 <0.14.0Fix Suggestion:
Update to version 0.14.0@nevware21/ts-utils (NPM):
Affected version(s) >=0.1.0 <0.14.0Fix Suggestion:
Update to version 0.14.0Related Resources (2)
Do you need more information?
Contact UsCVSS v4
Base Score:
7.2
Attack Vector
NETWORK
Attack Complexity
LOW
Attack Requirements
PRESENT
Privileges Required
NONE
User Interaction
NONE
Vulnerable System Confidentiality
HIGH
Vulnerable System Integrity
HIGH
Vulnerable System Availability
HIGH
Subsequent System Confidentiality
NONE
Subsequent System Integrity
NONE
Subsequent System Availability
NONE
Exploit Maturity
UNREPORTED
CVSS v3
Base Score:
9.8
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
HIGH
Integrity
HIGH
Availability
HIGH
Weakness Type (CWE)
Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')