В версиях Eclipse Theia 0.7.0 и выше, вплоть до версии 1.73.1, функция PreferenceUtils.merge в @theia/core рекурсивно объединяет значения предпочтений, не отклоняя ключи, связанные с прототипом (__proto__, constructor, prototype). Поскольку эта функция вызывается PreferenceServiceImpl.doResolve для каждого разрешения предпочтений в различных областях (по умолчанию, пользователь, рабочая область, папка), созданное значение предпочтения в файле настроек рабочей области (`.theia/settings.json` или `.vscode/settings.json`) может загрязнять `Object.prototype`, когда пользователь открывает рабочую область, потенциально изменяя логику приложения в процессе Theia.
Показать оригинальное описание (EN)
In Eclipse Theia versions 0.7.0 and up until including 1.73.1, the `PreferenceUtils.merge` function in `@theia/core` recursively merges preference values without rejecting prototype-related keys (`__proto__`, `constructor`, `prototype`). Because this function is invoked by `PreferenceServiceImpl.doResolve` for every preference resolution across scopes (default, user, workspace, folder), a crafted preference value in a workspace settings file (`.theia/settings.json` or `.vscode/settings.json`) can pollute `Object.prototype` when the user opens the workspace, potentially altering application logic across the Theia process.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Eclipse Theia
cpe:2.3:a:eclipse:theia:*:*:*:*:*:*:*:*
|
0.7.0
|
1.74.0
|