~ / search / GHSA-8x7x-83cf-c3pg

GHSA-8x7x-83cf-c3pg

Hatchet allows cross-tenant write/DoS to other tenants' workers via Dispatcher gRPC UpsertWorkerLabels and Unsubscribe

Source: GitHub Advisory Database (reviewed) Moderate CVE-2026-54746

Packages

EcosystemPackageAffectedFixed in
Go github.com/hatchet-dev/hatchet >= 0.40.0, < 0.91.2 0.91.2

Details

As written in the advisory (Markdown source, shown as plain text).

### Summary A **cross-tenant write / DoS** vulnerability in the Hatchet `Dispatcher` gRPC service allows any holder of a normal tenant-scoped API token (the lowest credential Hatchet issues — an `OWNER` of a brand-new tenant) to overwrite the affinity labels of, or disconnect from the dispatcher, any worker UUID belonging to any other tenant on the same Hatchet instance. The two affected RPCs — `Dispatcher/UpsertWorkerLabels` and `Dispatcher/Unsubscribe` — read the caller's tenant from the bearer-token context only for analytics and response shaping, and never use it to authorise the `worker_id` from the request body. ### Impact This CVE requires the attacker to successfully guess the target UUID. **Who is impacted.** Any Hatchet deployment that hosts more than one tenant on the same instance: - **Hatchet Cloud (multi-tenant SaaS)** — every tenant is exposed to every other tenant. - **Self-hosted Hatchet with multiple internal teams / business units sharing one instance** — each team is exposed to every other team on the box. - **Any deployment where a single tenant's API token can be obtained by an attacker** (e.g. a leaked low-privilege CI token from a single tenant). One token is enough to attack every other tenant on the same instance. Single-tenant self-hosted deployments are unaffected in practice (the "victim" and "attacker" tenants would be the same).

References

External links from the advisory. They lead to third-party sites.