Skip to main content
Vulnerability Database/CVE-2026-108755

CVE-2026-108755: Hatchet SNS Endpoint DoS Vulnerability

CVE-2026-108755 is a denial of service vulnerability in Hatchet that allows unauthenticated attackers to exhaust system memory through the SNS ingestion endpoint. This post covers the technical details, affected versions, impact assessment, and mitigation strategies.

Published:

CVE-2026-108755 Overview

CVE-2026-108755 is an unauthenticated denial-of-service vulnerability in Hatchet through version 0.110.5. The flaw resides in the Simple Notification Service (SNS) ingestion endpoint at POST /api/v1/sns/{tenant}/{event}. The SnsUpdate handler buffers the entire HTTP request body in memory before performing signature verification. Attackers can send arbitrarily large or highly concurrent request bodies using any UUID path parameters, exhausting server memory and degrading availability. The vulnerability is tracked under CWE-770: Allocation of Resources Without Limits or Throttling.

Critical Impact

Unauthenticated remote attackers can exhaust Hatchet server memory by submitting oversized or concurrent requests to a public SNS ingestion endpoint, degrading availability of the workflow orchestration service.

Affected Products

  • Hatchet workflow orchestration platform through version 0.110.5
  • The SnsUpdate handler in api/v1/server/handlers/ingestors/sns.go
  • Deployments exposing the /api/v1/sns/{tenant}/{event} ingestion route

Discovery Timeline

  • 2026-10-11 - CVE-2026-108755 published to the National Vulnerability Database (NVD)
  • 2026-10-14 - Last updated in NVD database

Technical Details for CVE-2026-108755

Vulnerability Analysis

Hatchet exposes an SNS webhook ingestion endpoint intended to receive messages from Amazon Simple Notification Service. The handler is reachable without authentication because SNS webhooks rely on message signature verification rather than bearer credentials. The design assumption is that any inbound request must pass cryptographic validation before being processed.

The implementation inverts the expected order of operations. The SnsUpdate handler reads and buffers the complete HTTP body into memory first, then performs signature verification afterward. No upper bound is applied to the body size, and the route accepts any {tenant} and {event} UUID without prior lookup. The rate limiting middleware does not constrain unauthenticated request volume on this path sufficiently to prevent memory pressure.

The outcome is a classic resource exhaustion condition. Successful exploitation produces service degradation or outright denial of service for the Hatchet control plane. Confidentiality and integrity are not affected.

Root Cause

The root cause is unbounded allocation of memory in the request parsing stage prior to authentication. The handler trusts arbitrary callers to supply reasonably sized payloads. See the Hatchet SNS handler source and the rate limit middleware for the vulnerable logic.

Attack Vector

The attack vector is network-based and requires no authentication or user interaction. An attacker issues POST requests to /api/v1/sns/{tenant}/{event} using any syntactically valid UUIDs for the path parameters. Each request carries an oversized body, or multiple requests are issued concurrently. The server allocates memory per request before rejecting the invalid signature, driving the process toward out-of-memory conditions. Technical write-ups are available at the HackMD advisory and the VulnCheck advisory.

// No verified exploit code available.
// Refer to the HackMD and VulnCheck advisories linked above
// for details on the request pattern against POST /api/v1/sns/{tenant}/{event}.

Detection Methods for CVE-2026-108755

Indicators of Compromise

  • Elevated volumes of POST requests to /api/v1/sns/{tenant}/{event} from a small set of source IPs or ASNs
  • Requests to the SNS ingestion path carrying Content-Length values far exceeding legitimate SNS message sizes
  • Hatchet API process resident set size growing rapidly, followed by OOM-kill events or restarts
  • Repeated signature verification failures logged by the SnsUpdate handler against random UUID tenants and events

Detection Strategies

  • Instrument the ingress tier to record per-route request size histograms for /api/v1/sns/* and alert on outliers
  • Correlate HTTP 4xx responses from the SNS handler with concurrent spikes in container memory metrics
  • Baseline legitimate SNS message sizes and flag any inbound body larger than the Amazon SNS documented maximum

Monitoring Recommendations

  • Export Hatchet API process metrics (RSS, Go heap, goroutine count) to a time-series backend and alert on sudden growth
  • Enable access logging with request body size on reverse proxies in front of Hatchet
  • Monitor Kubernetes pod restart counts and OOMKilled reasons for the Hatchet API deployment

How to Mitigate CVE-2026-108755

Immediate Actions Required

  • Upgrade Hatchet to a release later than 0.110.5 that constrains SNS request body size and applies rate limiting before body buffering
  • Place the Hatchet API behind a reverse proxy or Web Application Firewall that enforces a hard client_max_body_size on the SNS route
  • Restrict network reachability of /api/v1/sns/{tenant}/{event} to known AWS SNS egress ranges where feasible
  • Enforce stricter per-source request rate limits at the ingress layer for unauthenticated endpoints

Patch Information

Monitor the Hatchet GitHub repository for releases beyond 0.110.5 that address CVE-2026-108755. Fixes should enforce a maximum request body size, apply rate limits before signature verification, and validate tenant and event UUIDs against existing records prior to buffering the body. Review the VulnCheck advisory for the authoritative remediation guidance.

Workarounds

  • Terminate the SNS endpoint at an NGINX or Envoy proxy and set a strict body size limit, for example 64 KB
  • Disable the SNS ingestion route entirely if the deployment does not consume AWS SNS webhooks
  • Apply source IP allowlists restricting access to the SNS path to AWS published SNS source ranges
  • Add aggressive connection and request rate limits for unauthenticated requests at the load balancer
bash
# Example NGINX configuration to cap SNS ingestion body size and rate
limit_req_zone $binary_remote_addr zone=sns_rl:10m rate=5r/s;

server {
    location /api/v1/sns/ {
        client_max_body_size 64k;
        limit_req zone=sns_rl burst=10 nodelay;
        proxy_pass http://hatchet_api;
    }
}

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.