CVE-2026-61687
WysokieCVSS 7.1Streszczenie
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.
Ocena ryzyka
Atakujący może przejąć powiązanie sesji ofiary z tożsamością OAuth, co może prowadzić do nieautoryzowanego dostępu w kontekście ofiary. Wykorzystanie wymaga wcześniejszego ukończenia przepływu OAuth przez ofiarę i włączonej integracji Google, GitHub lub Slack.
Rekomendacja
Zaktualizuj Hatchet do wersji 0.91.1 lub nowszej. Do czasu aktualizacji rozważ wyłączenie integracji OAuth (Google, GitHub, Slack), jeśli nie są niezbędne.
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-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-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.91.1, ValidateOAuthState clears the oauth_state_ session value to an empty string after a successful OAuth callback and later accepts an empty state parameter as equal, allowing an unauthenticated attacker to bind a victim's Hatchet session to an attacker-controlled OAuth identity. Exploitation requires the victim to have completed an OAuth flow in the current session and the deployment to enable auth.google.enabled, auth.github.enabled, or the Slack integration. This issue is fixed in version 0.91.1.

