CVE-2026-61681
Hatchet: SSRF via Unsigned UnsubscribeURL in SNS UnsubscribeConfirmation Handler
Hatchet is a platform for orchestrating background tasks, AI agents, and durable workflows at scale. Prior to 0.91.1, the SNS UnsubscribeConfirmation handler in internal/integrations/ingestors/sns/sns.go calls http.Get() on payload.UnsubscribeURL after VerifyPayload() even though BuildSignature() excludes UnsubscribeURL, allowing an authenticated Hatchet tenant to replace that field in an otherwise valid AWS-signed message with an internal URL. The server-side request can reach EC2 Instance Metadata Service, internal services, and internal HTTP APIs, potentially exposing IAM credentials or network-accessible data and functionality. This issue is fixed in version 0.91.1.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- High
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
4.1
Hatchet: SSRF via Unsigned UnsubscribeURL in SNS UnsubscribeConfirmation Handler
Hatchet is a platform for orchestrating background tasks, AI agents, and durable workflows at scale. Prior to 0.91.1, the SNS UnsubscribeConfirmation handler in internal/integrations/ingestors/sns/sns.go calls http.Get() on payload.UnsubscribeURL after VerifyPayload() even though BuildSignature() excludes UnsubscribeURL, allowing an authenticated Hatchet tenant to replace that field in an otherwise valid AWS-signed message with an internal URL. The server-side request can reach EC2 Instance Metadata Service, internal services, and internal HTTP APIs, potentially exposing IAM credentials or network-accessible data and functionality. This issue is fixed in version 0.91.1.
- Record
CVE-2026-61681- CVSS 3.1
- 4.1 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N - Weakness
- CWE-918
- Updated
- 2026-11-02
EUVDEUVD-2026-83976
4.1
Hatchet is a platform for orchestrating background tasks, AI agents, and durable workflows at scale. Prior to 0.91.1, the SNS UnsubscribeConfirmation handler in internal/integrations/ingestors/sns/sns.go calls http.Get() on payload.UnsubscribeURL after VerifyPayload() even though BuildSignature() excludes UnsubscribeURL, allowing an authenticated Hatchet tenant to replace that field in an otherwise valid AWS-signed message with an internal URL. The server-side request can reach EC2 Instance Metadata Service, internal services, and internal HTTP APIs, potentially exposing IAM credentials or network-accessible data and functionality. This issue is fixed in version 0.91.1.
- Record
EUVD-2026-83976- CVSS 3.1
- 4.1 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-fjwv-jf2v-j499
4.1
Hatchet: SSRF via Unsigned UnsubscribeURL in SNS UnsubscribeConfirmation Handler
Summary
The SNS UnsubscribeConfirmation handler in internal/integrations/ingestors/sns/sns.go makes an unvalidated
http.Get() call to payload.UnsubscribeURL without any URL restriction. Because UnsubscribeURL is intentionally
excluded from the BuildSignature() signed field list, an attacker can replace this field in a legitimately
AWS-signed message with an arbitrary internal URL, bypassing the VerifyPayload() signature check entirely and
triggering a Server-Side Request Forgery (SSRF) against internal infrastructure — including the EC2 Instance Metadata
Service (IMDS) at 169.254.169.254.
Impact
This is a Server-Side Request Forgery (SSRF) vulnerability. An attacker with a Hatchet account and an AWS Free Tier account can:
- Reach the EC2 IMDS endpoint and retrieve IAM temporary credentials if Hatchet is deployed on AWS
- Port-scan and probe internal services not exposed to the internet
- Access internal HTTP APIs (e.g., Kubernetes API server, internal dashboards) from the Hatchet server's network context
- Record
GHSA-fjwv-jf2v-j499- CVSS 3.1
- 4.1 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N - Weakness
- CWE-918
- Updated
- 2026-11-04
NVD
4.1
Hatchet is a platform for orchestrating background tasks, AI agents, and durable workflows at scale. Prior to 0.91.1, the SNS UnsubscribeConfirmation handler in internal/integrations/ingestors/sns/sns.go calls http.Get() on payload.UnsubscribeURL after VerifyPayload() even though BuildSignature() excludes UnsubscribeURL, allowing an authenticated Hatchet tenant to replace that field in an otherwise valid AWS-signed message with an internal URL. The server-side request can reach EC2 Instance Metadata Service, internal services, and internal HTTP APIs, potentially exposing IAM credentials or network-accessible data and functionality. This issue is fixed in version 0.91.1.
- Record
CVE-2026-61681- CVSS 3.1
- 4.1 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N - Weakness
- CWE-918
- Updated
- 2026-11-02
OSV
4.1
Hatchet: SSRF via Unsigned UnsubscribeURL in SNS UnsubscribeConfirmation Handler
Hatchet is a platform for orchestrating background tasks, AI agents, and durable workflows at scale. Prior to 0.91.1, the SNS UnsubscribeConfirmation handler in internal/integrations/ingestors/sns/sns.go calls http.Get() on payload.UnsubscribeURL after VerifyPayload() even though BuildSignature() excludes UnsubscribeURL, allowing an authenticated Hatchet tenant to replace that field in an otherwise valid AWS-signed message with an internal URL. The server-side request can reach EC2 Instance Metadata Service, internal services, and internal HTTP APIs, potentially exposing IAM credentials or network-accessible data and functionality. This issue is fixed in version 0.91.1.
- Record
CVE-2026-61681- CVSS 3.1
- 4.1 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N - Weakness
- CWE-918
- Updated
- 2026-11-02
OSVGHSA-fjwv-jf2v-j499
4.1
Hatchet: SSRF via Unsigned UnsubscribeURL in SNS UnsubscribeConfirmation Handler
Summary
The SNS UnsubscribeConfirmation handler in internal/integrations/ingestors/sns/sns.go makes an unvalidated
http.Get() call to payload.UnsubscribeURL without any URL restriction. Because UnsubscribeURL is intentionally
excluded from the BuildSignature() signed field list, an attacker can replace this field in a legitimately
AWS-signed message with an arbitrary internal URL, bypassing the VerifyPayload() signature check entirely and
triggering a Server-Side Request Forgery (SSRF) against internal infrastructure — including the EC2 Instance Metadata
Service (IMDS) at 169.254.169.254.
Impact
This is a Server-Side Request Forgery (SSRF) vulnerability. An attacker with a Hatchet account and an AWS Free Tier account can:
- Reach the EC2 IMDS endpoint and retrieve IAM temporary credentials if Hatchet is deployed on AWS
- Port-scan and probe internal services not exposed to the internet
- Access internal HTTP APIs (e.g., Kubernetes API server, internal dashboards) from the Hatchet server's network context
- Record
GHSA-fjwv-jf2v-j499- CVSS 3.1
- 4.1 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N - Weakness
- CWE-918
- Updated
- 2026-11-05
OSVGO-2026-6565 No score
SSRF via Unsigned UnsubscribeURL in SNS UnsubscribeConfirmation Handler in github.com/hatchet-dev/hatchet
SSRF via Unsigned UnsubscribeURL in SNS UnsubscribeConfirmation Handler in github.com/hatchet-dev/hatchet
- Record
GO-2026-6565- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/hatchet-dev/hatchetGo |
before 0.91.1 | 0.91.1 |
github.com/hatchet-dev/hatchetGo |
before 0.91.2 | 0.91.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | OSV | |
| affected, facts | GitHub Advisories | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-61681 is a medium vulnerability (CVSS 4.1) in Hatchet-dev Hatchet, published September 21, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.31%, the 24th percentile. Fixed in github.com/hatchet-dev/hatchet 0.91.1.
References
github.com/hatchet-dev/hatchet/security/advisories/GHSA-fjwv-jf2v-j499
github.com/hatchet-dev/hatchet/commit/2d211bce16e5022afaf95780de82dc30e0bcba98
nvd.nist.gov/vuln/detail/CVE-2026-61681
github.com/advisories/GHSA-fjwv-jf2v-j499
github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61681.json
github.com/hatchet-dev/hatchet