Hatchet DurableTask WorkerStatus gRPC resolves caller-supplied durable-task UUIDs via ListSatisfiedEntries with no tenant_id filter
# Cross-tenant disclosure risk on `DurableTask` bidi RPC This is a low-severity, low-risk cross-tenant data exposure vuln caused by blindly accepting a durable task id, in addition to a list of node and branch ids that identify records in that task's event log, and returning them to the caller via the `handleWorkerStatus` polling path. # Impact This advisory requires an attacker to successfully guess a durable task's external uuid belonging to another tenant. External ids are generated uuid v4s (`uuid.New()` in Go), so exploitation requires prior knowledge of a target task UUID through an out-of-band channel. Thus, while the following environments are impacted, there is an extremely low probability it would be exploited. ### Who is impacted. Any Hatchet deployment that hosts more than one tenant on the same instance: * Hatchet Cloud (multi-tenant SaaS) * Self-hosted Hatchet with multiple internal teams / business units sharing one instance * Any deployment where a single tenant's API token can be obtained by an attacker Single-tenant self-hosted deployments are unaffected in practice (the "victim" and "attacker" tenants would be the same).
GO-2026-6560
Revision 1
Hatchet DurableTask WorkerStatus gRPC resolves caller-supplied durable-task UUIDs via ListSatisfiedEntries with no tenant_id filter in github.com/hatchet-dev/hatchet
Hatchet DurableTask WorkerStatus gRPC resolves caller-supplied durable-task UUIDs via ListSatisfiedEntries with no tenant_id filter in github.com/hatchet-dev/hatchet
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:GO-2026-6560
github.com/hatchet-dev/hatchet
Source reference: /affected/0/package/name
- Affected versions
- Not stated in this record
- Fixed versions
- 0.106.1
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "0.106.1"
}
]
}
],
"package": {
"name": "github.com/hatchet-dev/hatchet",
"purl": "pkg:golang/github.com/hatchet-dev/hatchet",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://vuln.go.dev/ID/GO-2026-6560.json"
},
"ecosystem_specific": {}
}
]- Related CVEs
- CVE-2026-88978
Source reference:
/aliases
Publisher severity
No explicit severity was provided.
- Event
- #63848 · Revision 1
- Added to Heist Feed
- Publisher date
GHSA-992g-9cr3-vm5x
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:GHSA-992g-9cr3-vm5x
github.com/hatchet-dev/hatchet
Source reference: /affected/0/package/name
- Affected versions
- Not stated in this record
- Fixed versions
- 0.106.1
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "0.106.1"
}
]
}
],
"package": {
"name": "github.com/hatchet-dev/hatchet",
"purl": "pkg:golang/github.com/hatchet-dev/hatchet",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-992g-9cr3-vm5x/GHSA-992g-9cr3-vm5x.json"
}
}
]- Related CVEs
- CVE-2026-88978
Source reference:
/aliases
Publisher severity
No explicit severity was provided.
- Event
- #63945 · Revision 1
- Added to Heist Feed
- Publisher date