CVE-2026-84298
NiskieCVSS 3.1Streszczenie
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.
Ocena ryzyka
Możliwe jest wyciek danych między tenantami, jeśli atakujący zna UUID zadania ofiary i ma dostęp do tego samego procesu dyspozytora. Wartości UUIDv4 nie są enumerowalne, a wdrożenia jednodzierżawcze nie są w praktyce dotknięte.
Rekomendacja
Zaktualizuj Hatchet do wersji 0.95.3 lub nowszej, która naprawia ten problem. Do czasu aktualizacji rozważ izolację procesów dyspozytora między tenantami oraz ograniczenie wiedzy o UUID zadań.
Inne podatności w Hatchet
Zobacz wszystkie- CVE-2026-88978Średnie
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.
- 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.95.3, the V1 DurableTask stream handler stores worker-supplied task_external_id values in the durableInvocations routing map before tenant ownership is verified, and callback delivery resolves that map by task UUID without tenant identity. An authenticated tenant worker that knows another tenant's durable task UUID and keeps a stream open on the same dispatcher process can receive that task's durable callback result payload. UUIDv4 values are not enumerable, and single-tenant deployments are unaffected in practice. This issue is fixed in version 0.95.3.

