Ad

CVE-2026-48170

CRITICAL CVSS 3.1: 9,1 EPSS 0.25%
Обновлено 10 августа 2026
Thomaspoignant
Параметр Значение
CVSS 9,1 (CRITICAL)
Уязвимые версии до 0.9.1
Тип уязвимости CWE-1321 (Загрязнение прототипа)
Поставщик Thomaspoignant
Публичный эксплойт Нет

`scim-patch`, библиотека для выполнения исправлений SCIM, до версии 0.9.1 выполняет загрязнение прототипа при применении операции SCIM PATCH, объект `value` которого содержит ключ типа `"__proto__.someProp"`. После одного такого патча `Object.prototype.someProp` устанавливается для всего процесса, влияя на каждый простой объект в процессе Node. Любая служба, которая вызывает `scimPatch()` для JSON, контролируемого злоумышленником (т. е. любая конечная точка SCIM, принимающая `PATCH` от внешнего IdP), может быть использована в стандартной среде выполнения Node.

Версия 0.9.1 содержит патч. Обходной путь доступен. Вызов `Object.freeze(Object.prototype)` (и то же самое для `Array.prototype`, `Function.prototype`) при запуске процесса нейтрализует этот класс ошибок — присвоение замороженному прототипу становится молчаливым отсутствием операции в небрежном режиме или `TypeError` в строгом режиме.

Флаг Node `--frozen-intrinsics` делает это автоматически для встроенных модулей.

Показать оригинальное описание (EN)

`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

Уязвимые продукты

thomaspoignant:scim-patch