В версиях Eclipse Theia до 1.73.1 включительно бэкенд `@theia/filesystem` связывает `POST /file-upload` в каждом развертывании с поддержкой файловой системы. Обработчик берет предоставленный злоумышленником абсолютный путь из составного поля `uri` и вызывает `fs.move(tmp, target, { overwrite: true })` без ограничения рабочей области и без аутентификации. В браузерных (не электронных) развертываниях токен подключения применяется только при обновлениях WebSocket; промежуточное программное обеспечение HTTP в `@theia/core` повторно выдает файл cookie и вызывает `next()`, не отклоняя HTTP-запросы без токенов.
Поскольку `multipart/form-data` — это тип запроса, внесенный в безопасный список CORS, веб-страница с несколькими источниками может инициировать запись без предварительной проверки и без учетных данных, что приводит к записи произвольного файла без проверки подлинности за пределы рабочей области по любому абсолютному пути, который может записать внутренний процесс. Это может перерасти в удаленное выполнение кода, например, путем перезаписи исполняемого при запуске файла, такого как `~/.bashrc`. Электронный режим использует отдельный «ElectronSecurityToken», и на него не влияет этот путь.
Показать оригинальное описание (EN)
In Eclipse Theia versions up to and including 1.73.1, the `@theia/filesystem` backend binds `POST /file-upload` in every filesystem-enabled deployment. The handler takes an attacker-supplied absolute path from the multipart `uri` field and calls `fs.move(tmp, target, { overwrite: true })` with no workspace confinement and no authentication. In browser (non-Electron) deployments the connection token is enforced only on WebSocket upgrades; the HTTP middleware in `@theia/core` re-issues the cookie and calls `next()` without rejecting tokenless HTTP requests. Because `multipart/form-data` is a CORS-safelisted request type, a cross-origin web page can trigger the write with no preflight and no credentials, resulting in an unauthenticated arbitrary file write outside the workspace to any absolute path the backend process can write. This can escalate to remote code execution, for example by overwriting a startup-executed file such as `~/.bashrc`. Electron mode uses a separate `ElectronSecurityToken` and is not affected via this path.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Eclipse Theia
cpe:2.3:a:eclipse:theia:*:*:*:*:*:*:*:*
|
— |
1.74.0
|