# CVE-2026-33619: PinchTab has Unauthenticated Blind SSRF in Task Scheduler via Unvalidated callbackUrl

> Attackers can exploit unvalidated callback URLs in the optional scheduler to perform blind SSRF, potentially accessing internal network resources.

- **Severity:** Medium 4.1 (`CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:L/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** An administrator
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 26 Mar 2026
- **Updated:** 30 Mar 2026
- **Also known as:** GHSA-xqq2-4j46-vwp7, GO-2026-4825

## What is CVE-2026-33619?

CVE-2026-33619 is a medium-severity server-side request forgery vulnerability in pinchtab, published on 26 Mar 2026. An attacker needs administrator access to exploit it, with no action from the victim.

### Official description

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.

Weakness: CWE-918 (Server-Side Request Forgery)

## Which versions are affected by CVE-2026-33619?

3 open source packages ship an affected version, including github.com/pinchtab/pinchtab. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `github.com/pinchtab/pinchtab` | Go | All versions | 0.8.4 |
| `github.com/pinchtab/pinchtab` | Go | All versions | 0.8.4 |
| `github.com/pinchtab/pinchtab` | Go | All versions | 0.8.4 |

Products: Pinchtab Pinchtab.

## How do I fix CVE-2026-33619?

Upgrade github.com/pinchtab/pinchtab to 0.8.4 or later.

## Is CVE-2026-33619 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-33619 exists.

## Other vulnerabilities in pinchtab

- [CVE-2026-30834](https://insights.sbomify.com/CVE-2026-30834/): PinchTab: SSRF with Full Response Exfiltration via Download Handler (high 7.5)
- [CVE-2026-33623](https://insights.sbomify.com/CVE-2026-33623/): PinchTab: OS Command Injection via Profile Name in Windows Cleanup Routine Enables Arbitrary Command Execution (medium 6.7)
- [CVE-2026-33622](https://insights.sbomify.com/CVE-2026-33622/): A PinchTab Security Policy Bypass in /wait Allows Arbitrary JavaScript Execution (medium 6.1)
- [CVE-2026-33081](https://insights.sbomify.com/CVE-2026-33081/): PinchTab has Blind SSRF via browser-side redirect bypass in /download URL validation (medium 5.8)
- [CVE-2026-33621](https://insights.sbomify.com/CVE-2026-33621/): PinchTab: Unapplied Rate Limiting Middleware Allows Unbounded Brute-Force of API Token (medium 4.8)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-33619 and fix it if it is affected.

What it is: CVE-2026-33619 is a medium-severity server-side request forgery vulnerability in pinchtab, published on 26 Mar 2026. An attacker needs administrator access to exploit it, with no action from the victim.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-33619 exists.

Affected packages and fixed versions:
- github.com/pinchtab/pinchtab (Go): affected all versions; fixed in 0.8.4
- github.com/pinchtab/pinchtab (Go): affected all versions; fixed in 0.8.4
- github.com/pinchtab/pinchtab (Go): affected all versions; fixed in 0.8.4

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-33619/ (Markdown: https://insights.sbomify.com/CVE-2026-33619/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-33619
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-33619
- OSV: https://osv.dev/vulnerability/CVE-2026-33619

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-33619/
Summaries are generated and may contain mistakes; the official description above is the record.
