Sceawere
Vulnerability Detail
CVE-2026-48170UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
scim-patch Prototype Pollution Vulnerability
Vulnerability Metadata
- Severity
- Critical
- Score / CVSS
- 9.1
- Creation Date
- 15h ago
- Vendor
- thomaspoignant
- Product
- scim-patch
- Attack Type
- CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')
- Vector String
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:L
- Attack Complexity
- LOW
Narrative and Response
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.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "9.1",
"pubDate": "2026-08-07T22:16:59.170Z",
"pubdate": "2026-08-07T22:16:59.170Z",
"executiveSummary": "The scim-patch library prior to version 0.9.1 suffers from a prototype pollution vulnerability that allows attackers to modify the properties of Object.prototype process-wide. This security flaw arises when processing SCIM PATCH operations where the value object contains malicious keys such as __proto__.someProp. The vulnerability affects any Node.js service utilizing vulnerable versions of scim-patch to process attacker-controlled JSON inputs, particularly SCIM endpoints accepting PATCH requests from external Identity Providers (IdPs). Successful exploitation leads to global pollution of the JavaScript execution environment, impacting every plain object within the Node.js process and potentially causing denial of service, logic bypasses, or remote code execution depending on the application context. Attackers require the ability to supply a crafted JSON payload via a SCIM PATCH operation. Remediation requires upgrading to version 0.9.1 or implementing defensive hardening controls at the Node.js runtime level.",
"technicalDetails": "The vulnerability resides in the scim-patch library prior to version 0.9.1, specifically within the function responsible for applying SCIM PATCH operations to JavaScript objects. The root cause is insufficient input sanitization and key validation when traversing and modifying nested object properties based on user-supplied input. When the library processes a SCIM PATCH operation whose value object contains specially crafted keys utilizing property descriptors such as __proto__.someProp, it fails to restrict access to internal JavaScript prototype chains.\nExploitation occurs step-by-step when an external entity, such as an attacker-controlled Identity Provider or an adversary sending malicious API requests, interacts with a vulnerable SCIM endpoint. The attacker transmits a PATCH request containing a JSON payload with prototype-polluting property paths. As scim-patch dynamically evaluates and assigns these nested keys, it traverses the target object reference and inadvertently targets Object.prototype instead of the intended instance property.\nOnce the assignment executes, Object.prototype.someProp is set process-wide. Because JavaScript objects inherit properties from Object.prototype through prototypal inheritance, every plain object instantiated in the Node.js process immediately gains the polluted property. The attack requires no authentication or special privileges if the target SCIM PATCH endpoint is exposed to the network and accepts unauthenticated or attacker-controlled external input. The post-exploitation impact includes application instability, logic corruption, and potential tampering with security controls that rely on property checks of plain JavaScript objects."
}