В версиях Eclipse Theia 1.66.0 и выше, включая 1.73.1, бэкэнд `@theia/plugin-ext` предоставляет конечную точку HTTP `/hostedPlugin/:pluginId/:path(*)`, которая разрешает запрошенный путь к файлу с помощью `path.resolve(localPath, filePath)` без проверки того, что разрешенный путь остается в каталоге плагина. Неаутентифицированный сетевой злоумышленник может отправить закодированные в процентах последовательности `../` (`%2e%2e%2f`), которые декодируются в параметр пути и выходят из каталога плагина, позволяя получить произвольные файлы, читаемые серверным процессом Theia. Идентификаторы плагинов детерминированно определяются на основе издателя и имени плагина, поэтому встроенные плагины служат надежными привязками, не требующими предварительного знания целевой системы.
Показать оригинальное описание (EN)
In Eclipse Theia versions 1.66.0 and up until including 1.73.1, the `@theia/plugin-ext` backend exposes the `/hostedPlugin/:pluginId/:path(*)` HTTP endpoint, which resolves the requested file path with `path.resolve(localPath, filePath)` without verifying that the resolved path stays within the plugin's directory. An unauthenticated network attacker can send percent-encoded `../` sequences (`%2e%2e%2f`) that decode into the path parameter and escape the plugin directory, allowing arbitrary files readable by the Theia backend process to be retrieved. Plugin IDs are derived deterministically from a plugin's publisher and name, so built-in plugins serve as reliable anchors that require no prior knowledge of the target system.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Eclipse Theia
cpe:2.3:a:eclipse:theia:*:*:*:*:*:*:*:*
|
1.66.0
|
1.74.0
|