CVE-2026-48170: CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') in thomaspoignant scim-patch
`scim-patch`, a library to perform SCIM patch, prior to version 0.9.1 performs prototype pollution when applying a SCIM PATCH operation whose `value` object contains a key like `"__proto__.someProp"`. After one such patch, `Object.prototype.someProp` is set process-wide, affecting every plain object in the Node process. Any service that calls `scimPatch()` on attacker-controlled JSON (i.e. any SCIM endpoint accepting `PATCH` from an external IdP) is exploitable on a stock Node runtime. Version 0.9.1 contains a patch. A workaround is available. Calling `Object.freeze(Object.prototype)` (and the same on `Array.prototype`, `Function.prototype`) at process startup neutralizes this class of bug — assignment to a frozen prototype becomes a silent no-op in sloppy mode or a `TypeError` in strict mode. Node's `--frozen-intrinsics` flag does this for built-ins automatically.
AI Analysis
Technical Summary
The scim-patch library versions before 0.9.1 are vulnerable to prototype pollution via specially crafted SCIM PATCH operations. When an attacker-controlled JSON object contains keys such as "__proto__.someProp", the library sets properties on Object.prototype process-wide, affecting all plain objects in the Node.js runtime. This can lead to elevated impact including integrity and availability issues. The vulnerability is patched in version 0.9.1. A known workaround is to call Object.freeze on Object.prototype, Array.prototype, and Function.prototype at process startup, or to use Node.js's --frozen-intrinsics flag which freezes built-in prototypes automatically.
Potential Impact
Successful exploitation allows an attacker to modify the global Object prototype in the Node.js process, impacting all plain objects. This can lead to integrity violations by altering application logic or data structures and can also affect availability. The CVSS score is 9.1 (critical), reflecting network attack vector, low attack complexity, low privileges required, no user interaction, scope change, and high impact on integrity and low impact on availability.
Mitigation Recommendations
Upgrade scim-patch to version 0.9.1 or later, which contains an official patch for this vulnerability. As a workaround, freeze Object.prototype, Array.prototype, and Function.prototype at process startup using Object.freeze() to prevent prototype pollution. Alternatively, use the Node.js --frozen-intrinsics flag to automatically freeze built-in prototypes. Patch status is not explicitly stated beyond the availability of version 0.9.1 as a fix; check the vendor advisory for the latest remediation guidance.
CVE-2026-48170: CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') in thomaspoignant scim-patch
Description
`scim-patch`, a library to perform SCIM patch, prior to version 0.9.1 performs prototype pollution when applying a SCIM PATCH operation whose `value` object contains a key like `"__proto__.someProp"`. After one such patch, `Object.prototype.someProp` is set process-wide, affecting every plain object in the Node process. Any service that calls `scimPatch()` on attacker-controlled JSON (i.e. any SCIM endpoint accepting `PATCH` from an external IdP) is exploitable on a stock Node runtime. Version 0.9.1 contains a patch. A workaround is available. Calling `Object.freeze(Object.prototype)` (and the same on `Array.prototype`, `Function.prototype`) at process startup neutralizes this class of bug — assignment to a frozen prototype becomes a silent no-op in sloppy mode or a `TypeError` in strict mode. Node's `--frozen-intrinsics` flag does this for built-ins automatically.
CVSS v3.1
Score 9.1critical
Affected software
thomaspoignant
scim-patch
pkg:npm/thomaspoignant/scim-patchRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The scim-patch library versions before 0.9.1 are vulnerable to prototype pollution via specially crafted SCIM PATCH operations. When an attacker-controlled JSON object contains keys such as "__proto__.someProp", the library sets properties on Object.prototype process-wide, affecting all plain objects in the Node.js runtime. This can lead to elevated impact including integrity and availability issues. The vulnerability is patched in version 0.9.1. A known workaround is to call Object.freeze on Object.prototype, Array.prototype, and Function.prototype at process startup, or to use Node.js's --frozen-intrinsics flag which freezes built-in prototypes automatically.
Potential Impact
Successful exploitation allows an attacker to modify the global Object prototype in the Node.js process, impacting all plain objects. This can lead to integrity violations by altering application logic or data structures and can also affect availability. The CVSS score is 9.1 (critical), reflecting network attack vector, low attack complexity, low privileges required, no user interaction, scope change, and high impact on integrity and low impact on availability.
Mitigation Recommendations
Upgrade scim-patch to version 0.9.1 or later, which contains an official patch for this vulnerability. As a workaround, freeze Object.prototype, Array.prototype, and Function.prototype at process startup using Object.freeze() to prevent prototype pollution. Alternatively, use the Node.js --frozen-intrinsics flag to automatically freeze built-in prototypes. Patch status is not explicitly stated beyond the availability of version 0.9.1 as a fix; check the vendor advisory for the latest remediation guidance.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-05-20T23:12:43.033Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6a76512cbf8831d5393521f8
Added to database: 08/07/2026, 21:42:04 UTC
Last enriched: 08/15/2026, 15:32:26 UTC
Last updated: 09/22/2026, 01:52:43 UTC
Views: 212
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.