---
title: "CVE-2026-48170: scimPatch vulnerable to prototype pollution via unfiltered keys in patch"
url: https://erroneo.us/security/cve/CVE-2026-48170/
description: "CVE-2026-48170 (scim-patch (npm)): scim-patch, a library to perform SCIM patch, prior to version 0.9.1 performs prototype pollution when applying a SCIM…"
type: vulnerability-record
section: "Security Digest"
date_published: 2026-08-07
date_modified: 2026-08-10
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2026-48170"
kev: false
cvss: 9.1
epss: 0.00403
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-48170: scimPatch vulnerable to prototype pollution via unfiltered keys in patch

**Signal:** Critical, preconditions apply. Severe if exploited, but exploitation needs conditions that may not apply to you. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- Not in CISA KEV , but CISA’s SSVC assessment records a public proof-of-concept, so attack code exists.
- EPSS 0.4% , percentile 33: FIRST’s model estimates a 0.4% chance of exploitation activity in the next 30 days, higher than 33% of all scored CVEs (low). EPSS is a probability, not a verdict.
- Needs an account (low (any account)). Exposure depends on who can log in.
- Only applies if your dependency tree includes scim-patch (npm) <= 0.9.0, fixed in 0.9.1 . Check your lockfile, including transitive dependencies.

## What it is

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.

## Affected packages

- npm `scim-patch` <= 0.9.0 → fixed: 0.9.1

## Affected products (CVE record)

- thomaspoignant scim-patch: < 0.9.1

## Severity

- GitHub_M CVSS 3.1: 9.1 `CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:L`
- GitHub CVSS 3.1: 9.1 `CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:L`

## Exploitation

- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation poc , automatable no , technical impact partial .
- FIRST EPSS (model of 2026-10-21): 0.40% probability of exploitation activity in the next 30 days; percentile 33.

## Sources

- [GitHub Advisory GHSA-9m6g-wc8r-q59c](https://github.com/advisories/GHSA-9m6g-wc8r-q59c)
- [CVE.org record CVE-2026-48170](https://www.cve.org/CVERecord?id=CVE-2026-48170)
- [NVD entry CVE-2026-48170](https://nvd.nist.gov/vuln/detail/CVE-2026-48170)
- [github.com](https://github.com/thomaspoignant/scim-patch/security/advisories/GHSA-9m6g-wc8r-q59c)
- [github.com](https://github.com/thomaspoignant/scim-patch/commit/260f9cd2ac5ceac3976978850bb47dcb391720f6)

---
Source page: https://erroneo.us/security/cve/CVE-2026-48170/ · Security Digest: https://erroneo.us/security/ · More: https://erroneo.us/llms.txt
