{"items":[{"id":"NVI-00018463","kind":"vulnerability","title":"@nevware21/ts-utils: Prototype Pollution in objDeepCopy/objCopyProps via for...in without hasOwnProperty","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-x7j8-49r8-mr43","CVE-2026-46681"],"plain_summary":"GitHub lists this reviewed advisory for @nevware21/ts-utils. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-29441218e6a7ca9e86f26d0f27a7e53d"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-29441218e6a7ca9e86f26d0f27a7e53d","url":"https://github.com/advisories/GHSA-x7j8-49r8-mr43","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-x7j8-49r8-mr43","publisher":"GitHub Advisory Database","observed_at":"2026-11-07T07:02:15.138Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-29441218e6a7ca9e86f26d0f27a7e53d"],"technology":"@nevware21/ts-utils","known_exclusions":[],"conditions_summary":"## Summary\n\nThe _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.\n\n## Details\n\nIn _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.\n\n## PoC\n```\nconst malicious = JSON.parse('{\"__proto__\": {\"polluted\": true}}');\nobjDeepCopy(malicious);\nconsole.log({}.polluted); // true\n```\n## Suggested Fix\n\nAdd objHasOwnProperty check and filter __proto__, constructor, prototype keys.","public_affected_ranges":["<= 0.13.0"]}],"null_published_at":"2026-11-07T07:07:39.839Z","source_updated_at":"2026-05-21T21:41:36.000Z","source_disclosed_at":"2026-05-21T21:41:36.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-07T07:02:15.138Z"}],"next_cursor":null,"snapshot_revision":"42594"}