PinchTab — это автономный HTTP-сервер, который дает агентам ИИ прямой контроль над браузером Chrome. PinchTab от v0.8.3 до v0.8.5 разрешает произвольное выполнение JavaScript через POST /wait и POST /tabs/{id}/wait, когда запрос использует режим fn, даже если Security.allowEvaluate отключен. POST /evaluate корректно применяет защиту Security.allowEvaluate, которая по умолчанию отключена. Однако в затронутых выпусках POST /wait принимал управляемое пользователем выражение fn, встраивал его непосредственно в исполняемый файл JavaScript и оценивал его в контексте браузера, не проверяя ту же политику. Это обход политики безопасности, а не отдельный обход аутентификации.
Для эксплуатации по-прежнему требуется доступ к API с проверкой подлинности, но вызывающая сторона с токеном сервера может выполнять произвольный код JavaScript в контексте вкладки, даже если оператор явно отключил оценку JavaScript. Текущее рабочее дерево исправляет это, применяя ту же границу политики к режиму `fn` в `/wait`, которая уже существует в `/evaluate`, сохраняя при этом режимы ожидания, не связанные с кодом. На момент публикации исправленная версия еще не доступна.
Показать оригинальное описание (EN)
PinchTab is a standalone HTTP server that gives AI agents direct control over a Chrome browser. PinchTab `v0.8.3` through `v0.8.5` allow arbitrary JavaScript execution through `POST /wait` and `POST /tabs/{id}/wait` when the request uses `fn` mode, even if `security.allowEvaluate` is disabled. `POST /evaluate` correctly enforces the `security.allowEvaluate` guard, which is disabled by default. However, in the affected releases, `POST /wait` accepted a user-controlled `fn` expression, embedded it directly into executable JavaScript, and evaluated it in the browser context without checking the same policy. This is a security-policy bypass rather than a separate authentication bypass. Exploitation still requires authenticated API access, but a caller with the server token can execute arbitrary JavaScript in a tab context even when the operator explicitly disabled JavaScript evaluation. The current worktree fixes this by applying the same policy boundary to `fn` mode in `/wait` that already exists on `/evaluate`, while preserving the non-code wait modes. As of time of publication, a patched version is not yet available.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Pinchtab Pinchtab
cpe:2.3:a:pinchtab:pinchtab:*:*:*:*:*:*:*:*
|
0.8.3
|
<= 0.8.5
|