VDB
Sign up
HIGH

GHSA-x7j8-49r8-mr43

@nevware21/ts-utils: Prototype Pollution in objDeepCopy/objCopyProps via for...in without hasOwnProperty

Quick fix

GHSA-x7j8-49r8-mr43 — @nevware21/ts-utils: upgrade to the fixed version with the command below.

npm install @nevware21/ts-utils@0.14.0

Details

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

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/@nevware21/ts-utils
Introduced in: 0Fixed in: 0.14.0
Fixnpm install @nevware21/ts-utils@0.14.0

References