PinchTab — это автономный HTTP-сервер, который дает агентам ИИ прямой контроль над браузером Chrome. PinchTab v0.8.3 содержит проблему подделки запроса на стороне сервера в пути доставки дополнительного веб-перехватчика планировщика. Когда задача отправляется в POST /tasks с управляемым пользователем callbackUrl, планировщик версии 0.8.3 отправляет исходящий HTTP-запрос POST на этот URL-адрес, когда задача достигает состояния терминала. В этом выпуске путь веб-перехватчика проверял только схему URL-адресов и не отклонял петлевые, частные, локальные или другие закрытые места назначения.
Поскольку реализация версии 0.8.3 также использовала поведение HTTP-клиента по умолчанию, выполнялись перенаправления, и пункт назначения не был привязан к проверенным IP-адресам. Это позволило скрыть SSRF от сервера PinchTab к выбранным злоумышленником целям HTTP(S), доступным с сервера. Эта проблема уже, чем обычный SSRF с выходом в Интернет без аутентификации.
Планировщик является необязательным и по умолчанию отключен, а в развертываниях, защищенных токенами, злоумышленник уже должен иметь возможность отправлять задачи с использованием главного токена API сервера. В предполагаемой модели развертывания PinchTab этот токен представляет собой административный контроль, а не роль с низким уровнем привилегий. Развертывания без токенов еще больше снижают барьер, но это отдельное небезопасное состояние конфигурации, а не влияние, создаваемое самой ошибкой веб-перехватчика.
Модель развертывания PinchTab по умолчанию — локальная и управляемая пользователем, с петлевой привязкой и доступом на основе токенов в рекомендуемой настройке. Это снижает практический риск при использовании по умолчанию, хотя и не устраняет основную проблему веб-перехватчика, когда планировщик включен и доступен. В версии 0.8.4 эта проблема была устранена путем проверки целей обратного вызова перед отправкой, отклонения закрытых диапазонов IP-адресов, закрепления доставки на проверенных IP-адресах, отключения отслеживания перенаправления и проверки callbackUrl во время отправки задачи.
Показать оригинальное описание (EN)
PinchTab is a standalone HTTP server that gives AI agents direct control over a Chrome browser. PinchTab v0.8.3 contains a server-side request forgery issue in the optional scheduler's webhook delivery path. When a task is submitted to `POST /tasks` with a user-controlled `callbackUrl`, the v0.8.3 scheduler sends an outbound HTTP `POST` to that URL when the task reaches a terminal state. In that release, the webhook path validated only the URL scheme and did not reject loopback, private, link-local, or other non-public destinations. Because the v0.8.3 implementation also used the default HTTP client behavior, redirects were followed and the destination was not pinned to validated IPs. This allowed blind SSRF from the PinchTab server to attacker-chosen HTTP(S) targets reachable from the server. This issue is narrower than a general unauthenticated internet-facing SSRF. The scheduler is optional and off by default, and in token-protected deployments the attacker must already be able to submit tasks using the server's master API token. In PinchTab's intended deployment model, that token represents administrative control rather than a low-privilege role. Tokenless deployments lower the barrier further, but that is a separate insecure configuration state rather than impact created by the webhook bug itself. PinchTab's default deployment model is local-first and user-controlled, with loopback bind and token-based access in the recommended setup. That lowers practical risk in default use, even though it does not remove the underlying webhook issue when the scheduler is enabled and reachable. This was addressed in v0.8.4 by validating callback targets before dispatch, rejecting non-public IP ranges, pinning delivery to validated IPs, disabling redirect following, and validating `callbackUrl` during task submission.
Характеристики атаки
Последствия
Строка CVSS v3.1