Skip to main content

@nevware21/ts-utils CVE-2026-46681

| EUVDEUVD-2026-46260 HIGH
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-05-21 https://github.com/nevware21/ts-utils GHSA-x7j8-49r8-mr43
7.2
CVSS 4.0 · Vendor: https://github.com/nevware21/ts-utils
Share

Severity by source

Vendor (https://github.com/nevware21/ts-utils) PRIMARY
7.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
6.5 MEDIUM

Exploitation needs the app to feed untrusted input to objDeepCopy plus a gadget, so AC:H; no auth (PR:N); primary impact is prototype integrity (I:H) with possible DoS (A:L) and no confidentiality loss.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
Red Hat
7.5 HIGH
qualitative

Primary rating from Vendor (https://github.com/nevware21/ts-utils).

CVSS VectorVendor: https://github.com/nevware21/ts-utils

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

5
Analysis Updated
Jul 21, 2026 - 15:47 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Jul 21, 2026 - 15:37 vuln.today
cvss_changed
CVSS changed
Jul 21, 2026 - 15:37 NVD
7.2 (HIGH)
Source Code Evidence Fetched
May 21, 2026 - 22:31 vuln.today
Analysis Generated
May 21, 2026 - 22:31 vuln.today

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 1 npm packages depend on @nevware21/ts-utils (1 direct, 0 indirect)

Ecosystem-wide dependent count for version 0.14.0.

DescriptionCVE.org

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.

AnalysisAI

Prototype pollution in the @nevware21/ts-utils npm library (versions <= 0.13.0) lets an attacker who can influence an object passed to objDeepCopy() or objCopyProps() inject a __proto__ (or constructor/prototype) key that overwrites Object.prototype for the entire application. The flaw stems from _copyProps() in lib/src/object/copy.ts iterating with for...in and no hasOwnProperty guard, so parsing untrusted JSON and deep-copying it is enough to poison every object. A working proof-of-concept is published in the GHSA advisory, though EPSS is very low (0.06%) and the issue is not on CISA KEV, so publicly available exploit code exists but no active exploitation is confirmed.

Technical ContextAI

The affected component is the TypeScript utility library @nevware21/ts-utils (npm package pkg:npm/@nevware21/ts-utils), specifically its object copy helpers objDeepCopy and objCopyProps backed by the internal _copyProps function. The root cause is CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes, i.e. prototype pollution): _copyProps uses a JavaScript for...in loop, which walks both own and inherited enumerable properties and does not distinguish the special __proto__ accessor. Without an Object.hasOwnProperty / objHasOwnProperty filter and without excluding the dangerous keys __proto__, constructor, and prototype, assigning a source property named __proto__ mutates the target object's prototype rather than setting an own property. Because JavaScript objects share Object.prototype, a single polluting copy propagates to all objects created in the running process, potentially altering control-flow-relevant defaults, enabling denial of service, or feeding downstream gadgets.

RemediationAI

Vendor-released patch: 0.14.0 - upgrade @nevware21/ts-utils to >= 0.14.0, which adds objHasOwnProperty checks and filters the __proto__, constructor, and prototype keys (see advisory https://github.com/nevware21/ts-utils/security/advisories/GHSA-x7j8-49r8-mr43 and fix commit https://github.com/nevware21/ts-utils/commit/5e887f4e2fbee7160c8f501634c45e6a229e83bb). Because the package is frequently a transitive dependency, run npm ls @nevware21/ts-utils and update or override the resolved version (npm overrides / yarn resolutions) so nested copies are also bumped. If an immediate upgrade is not possible, apply compensating controls in the calling code: avoid passing unsanitized JSON directly into objDeepCopy/objCopyProps, strip or reject any incoming object containing a __proto__/constructor/prototype key before copying, and consider Object.freeze(Object.prototype) at startup to block prototype mutation (trade-off: this can break libraries that legitimately extend prototypes and must be tested). Parsing untrusted input with a reviver that drops dangerous keys, or using Map/null-prototype objects for attacker-controlled data, further reduces exposure until the patched version is deployed.

CVE-2026-34621 HIGH POC
8.6 Apr 11

Prototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu

CVE-2024-56059 CRITICAL
9.8 Dec 18

Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau

CVE-2020-28271 CRITICAL POC
9.8 Nov 12

Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service

CVE-2023-38894 CRITICAL POC
9.8 Aug 16

A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi

CVE-2024-24292 CRITICAL POC
9.8 Mar 28

A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function

CVE-2023-26121 CRITICAL POC
10.0 Apr 11

All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s

CVE-2021-23449 CRITICAL POC
10.0 Oct 18

This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr

CVE-2024-39011 CRITICAL POC
9.8 Jul 30

Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser

CVE-2024-38988 CRITICAL POC
9.8 Mar 28

alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde

CVE-2025-57347 CRITICAL POC
9.8 Sep 24

A vulnerability exists in the 'dagre-d3-es' Node.js package version 7.0.9, specifically within the 'bk' module's addConf

CVE-2025-57321 CRITICAL POC
9.8 Sep 24

A Prototype Pollution vulnerability in the util-deps.addFileDepend function of magix-combine-ex versions thru 1.2.10 all

CVE-2024-45435 CRITICAL POC
9.8 Aug 29

Chartist 1.x through 1.3.0 allows Prototype Pollution via the extend function. Rated critical severity (CVSS 9.8), this

Vendor StatusVendor

Share

CVE-2026-46681 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy