Hatchet V1 DurableTask Cross-Tenant Callback Leak via Task UUID
First seen Sep 22, 2026 · Updated Sep 22, 2026 · CVSS 3.1
Hatchet's task orchestration platform, used to run AI agent workflows, had a multi-tenancy isolation flaw where an authenticated worker from one tenant could receive another tenant's durable task callback payload if it knew or guessed the task's UUID. Exploitation requires an authenticated worker, knowledge of an unenumerable UUIDv4, and a live stream on the same dispatcher process, making real-world exploitation difficult. This is a genuine but low-severity cross-tenant data leak, fixed in version 0.95.3, and does not affect single-tenant deployments.
Technical Analysis
The V1 DurableTask stream handler registers worker-supplied task_external_id values into a shared durableInvocations routing map before verifying tenant ownership of the task. Callback delivery subsequently resolves recipients from this map using only the task UUID, with no tenant identity check at delivery time. An authenticated worker belonging to Tenant A that learns or guesses Tenant B's durable task UUID, and maintains an open stream on the same dispatcher process, can receive Tenant B's callback result payload, crossing tenant isolation boundaries in a shared agent orchestration backend. Because UUIDv4 values are cryptographically non-enumerable, practical exploitation is limited to insider threats or leaked UUIDs rather than brute-force discovery.
Affected Systems
Hatchet
Detection Signatures
- Monitor Hatchet dispatcher logs for durable task stream subscriptions referencing task_external_id values not owned by the requesting tenant
- Alert on callback delivery events where resolved tenant context differs from the subscribing worker's tenant
- Audit multi-tenant Hatchet deployments below version 0.95.3
Remediation Steps
- 1
Upgrade Hatchet
Update to Hatchet 0.95.3 or later, which enforces tenant ownership verification before registering durableInvocations routing entries and at callback delivery time.
- 2
Audit multi-tenant deployments
Review logs for any cross-tenant durable task stream access prior to patching, especially in shared dispatcher environments.
- 3
Restrict UUID exposure
Avoid leaking task_external_id/UUID values across tenant boundaries in logs, APIs, or shared UI components to reduce the attack surface even after patching.
- 4
Enforce tenant isolation checks
Where feasible, deploy separate dispatcher processes per tenant for high-sensitivity workloads instead of relying solely on application-layer tenant checks.
CVE / Advisory IDs
Industries Most Exposed
Respond to this threat
Pro subscribers get a full AI-generated incident-response playbook for this threat — detection, containment, eradication, and recovery steps — plus an unlimited AI Threat Advisor for questions about your environment.