CVE-2026-88978
ŚrednieCVSS 4.3Streszczenie
Hatchet przed wersją 0.106.1 ma brak filtra dzierżawcy (tenant) w ścieżce gRPC WorkerStatus w pkg/repository/durable_events.go. Uwierzytelniony pracownik jednego dzierżawcy, znając identyfikator UUID zadania innego dzierżawcy, może odczytać odpowiadające rekordy dziennika zdarzeń, co prowadzi do naruszenia izolacji danych.
Ocena ryzyka
Ryzyko ujawnienia danych między dzierżawcami – atakujący może uzyskać informacje o zadaniach, które nie są mu przeznaczone, co narusza poufność.
Rekomendacja
Zaktualizuj Hatchet do wersji 0.106.1, która dodaje wymagany filtr dzierżawcy.
Inne podatności w Hatchet
Zobacz wszystkie- CVE-2026-84298Niskie
Hatchet przed wersją 0.95.3 w handlerze strumienia V1 DurableTask zapisuje wartości task_external_id dostarczone przez workera w mapie routingu durableInvocations przed weryfikacją własności tenanta, a dostarczanie callbacków rozwiązuje tę mapę po UUID zadania bez tożsamości tenanta. Uwierzytelniony worker jednego tenanta, znający UUID zadania innego tenanta i utrzymujący otwarty strumień na tym samym procesie dyspozytora, może odebrać ładunek wyniku callbacku tego zadania.
- CVE-2026-63342Średnie
Hatchet przed wersją 0.91.1 ma brak walidacji dzierżawcy w punkcie API GET /api/v1/stable/durable-tasks/{durable-task} w api-contracts/openapi/paths/v1/workflow-runs/workflow_run.yaml. Uwierzytelniony użytkownik, znając identyfikator UUID zadania innego dzierżawcy, może odczytać jego dziennik zdarzeń, w tym nazwy zadań, identyfikatory przepływów pracy, komunikaty użytkownika, warunki oczekiwania i logikę rozgałęzień.
- CVE-2026-61687Wysokie
W Hatchet przed wersją 0.91.1 funkcja ValidateOAuthState po udanym wywołaniu zwrotnym OAuth czyści wartość sesji oauth_state_ do pustego ciągu, a następnie akceptuje pusty parametr state jako równy. Umożliwia to nieuwierzytelnionemu atakującemu powiązanie sesji ofiary w Hatchet z kontrolowaną przez atakującego tożsamością OAuth.
- CVE-2026-61681Średnie
Hatchet przed wersją 0.91.1 ma podatność SSRF w handlerze SNS UnsubscribeConfirmation. Uwierzytelniony tenant może podmienić pole UnsubscribeURL w ważnej wiadomości AWS na wewnętrzny URL, co pozwala na żądania serwerowe do EC2 Instance Metadata Service, wewnętrznych usług i interfejsów API. Może to ujawnić poświadczenia IAM lub dostępne dane i funkcje sieciowe.
- CVE-2026-54746Średnie
Hatchet od wersji 0.40.0 do 0.91.1 nie weryfikuje, czy identyfikator pracownika (worker ID) w żądaniach Dispatcher/UpsertWorkerLabels i Dispatcher/Unsubscribe należy do dzierżawy wskazanej w kontekście tokena. Uwierzytelniony właściciel dowolnej dzierżawy, który zgadnie UUID pracownika innej dzierżawy, może nadpisać etykiety powinowactwa tego pracownika lub rozłączyć go z dyspozytorem.
Oryginalny opis (angielski, źródło NVD)
Hatchet is a platform for orchestrating background tasks, AI agents, and durable workflows at scale. Prior to 0.106.1, the WorkerStatus gRPC polling path in pkg/repository/durable_events.go passes caller-supplied durable task, node, and branch identifiers to ListSatisfiedEntries without a tenant filter, allowing an authenticated tenant worker that knows another tenant's durable-task UUID to retrieve matching durable event-log records. The UUIDv4 requirement makes exploitation unlikely, and single-tenant deployments are unaffected in practice. This issue is fixed in version 0.106.1.

