CVE-2026-55429
WysokieCVSS 8.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 40 - wyżej niż 40% wszystkich znanych CVE
Streszczenie
W Coder przed wersjami 2.29.7, 2.32.7, 2.33.8 i 2.34.2 funkcja `UpsertWorkspaceApp` nadpisuje istniejący wpis aplikacji, a `insertAgentApp` akceptuje identyfikator aplikacji z ładunku `CompleteJob` bez weryfikacji, czy należy on do budowanego workspace. Pozwala to na przypisanie agenta z innego workspace, co wymaga podwyższonych uprawnień autora szablonu lub operatora zewnętrznego provisionera.
Ocena ryzyka
Organizacja narażona jest na nieautoryzowane przejęcie agenta z innego workspace, co może prowadzić do naruszenia izolacji środowisk i potencjalnego wycieku danych lub eskalacji uprawnień.
Rekomendacja
Należy niezwłocznie zaktualizować Coder do wersji 2.29.7, 2.32.7, 2.33.8 lub 2.34.2, które weryfikują przynależność aplikacji do budowanego workspace i blokują przypisanie agenta między workspace.
Inne podatności w Coder
Zobacz wszystkie- CVE-2026-46354Krytyczne
W Coder przed wersjami 2.24.5, 2.29.13, 2.30.8, 2.31.12, 2.32.2 i 2.33.3 funkcja `azureidentity.Validate()` nie weryfikuje podpisu PKCS#7, a jedynie sprawdza, czy certyfikat podpisującego pochodzi od zaufanego urzędu certyfikacji Azure. Atakujący może osadzić prawdziwy certyfikat Azure wraz z dowolną treścią, np. `{"vmId":"<target>"}`, a sfałszowane `vmId` zostanie zaakceptowane, co umożliwi przejęcie tokena sesji agenta ofiary.
- CVE-2026-118687Średnie
Coder w wersjach przed 2.29.21, 2.30.0 przed 2.34.12, 2.35.0 przed 2.35.9, 2.36.0 przed 2.36.7 oraz 2.37.0 przed 2.37.4 nie weryfikuje roszczenia audience w tokenach JWT GCE instance-identity na endpointcie POST /api/v2/workspaceagents/google-instance-identity. Atakujący, który zdobędzie niewygasły token tożsamości w formacie format=full wystawiony dla innej strony ufającej, może go odtworzyć, aby uzyskać token sesji agenta workspace, ważny do następnego builda workspace.
- CVE-2026-111934Niskie
Coder w wersjach przed 2.34.7 zawiera podatność na fałszowanie adresu IP w middleware ExtractRealIPAddress, które ufa skrajnie lewej wartości X-Forwarded-For dostarczonej przez klienta, zamiast adresowi IP dodanemu przez reverse proxy. Atakujący mogą wysyłać sfałszowane wartości X-Forwarded-For przez proxy dołączające, aby obejść limity szybkości na endpointach logowania, jednorazowych kodów dostępu i walidacji hasła, umożliwiając ataki brute-force oraz fałszowanie adresów IP w dziennikach audytu.
- CVE-2026-111933Niskie
Coder w wersjach przed 2.29.17, 2.30.0 przed 2.32.7, 2.33.0 przed 2.33.8 oraz 2.34.0 przed 2.34.2 zawiera podatność na enumerację użytkowników, ponieważ funkcja userpassword.Compare() podstawia zastępczy hash pochodzący z ciągu "hunter2", gdy zapisany hash hasła jest pusty. Nieuwierzytelnieni atakujący mogą przesyłać loginy z hasłem "hunter2" i rozróżniać odpowiedzi HTTP 403 od 401, aby wyliczyć prawidłowe konta i ujawnić dostawcę uwierzytelniania użytkowników korzystających wyłącznie z SSO.
- CVE-2026-111932Niskie
Coder w wersjach przed 2.29.17, 2.30.0 przed 2.32.7, 2.33.0 przed 2.33.8 oraz 2.34.0 przed 2.34.2 zawiera podatność na trwałe wstrzyknięcie HTML, ponieważ ustawienia wyglądu ApplicationName i LogoURL są renderowane do wyjścia HTML bez wystarczającego escapowania. Atakujący z rolą Owner mogą zapisać znaczniki HTML w tych ustawieniach, które renderują się w panelu Coder oraz w wiadomościach e-mail powiadomień SMTP wysyłanych do innych użytkowników wdrożenia.
- CVE-2026-111931Średnie
Coder od 2.0.0 przed 2.34.8 zawiera lukę otwartego przekierowania w handleAPIKeySmuggling, która pozwala atakującym przekierować użytkowników na zewnętrzne strony poprzez nieoczyszczone wartości r.URL.Path. Atakujący mogą tworzyć linki w zaufanych subdomenach aplikacji workspace ze ścieżkami zaczynającymi się od podwójnego ukośnika, które stają się przekierowaniami względnymi schematu do stron atakującego w celach phishingowych.
- CVE-2026-111930Średnie
Coder od 2.26.0 przed 2.34.8 zawiera błąd autoryzacji w endpoincie GET /api/v2/workspaces/{id}/acl, który sprawdza tylko dostęp do odczytu workspace, a następnie pobiera członków grupy w podwyższonym kontekście systemowym. Uwierzytelnieni użytkownicy z dostępem do workspace mogą odpytać endpoint, aby pozyskać adresy e-mail, typy logowania, status oraz znaczniki czasu ostatniego logowania i utworzenia członków grupy.
- CVE-2026-111929Średnie
Coder od 2.30.0 przed 2.34.8 zawiera lukę obejścia autoryzacji w handlerze gRPC DownloadFile demona provisionera, która pozwala uwierzytelnionym demonom provisionera pobierać archiwa modułów Terraform z pamięci podręcznej innych organizacji. Atakujący z kluczem provisionera o zakresie organizacji i znanym UUID pliku może pobrać kod źródłowy modułu, ujawniając topologię infrastruktury lub osadzone sekrety.
- CVE-2026-111928Średnie
Coder od 2.0.0 przed 2.34.8 zawiera lukę nieprawidłowej autoryzacji w regule acl_allow pliku coderd/rbac/policy.rego, która nie weryfikuje członkostwa w organizacji dla wpisów ACL na użytkownika, a usunięcie członka organizacji nie usuwa tych wpisów. Uwierzytelnieni użytkownicy usunięci z organizacji mogą nadal uzyskiwać dostęp do wcześniej przyznanych zasobów o zasięgu organizacji, takich jak szablony i workspace, poprzez API.
- CVE-2026-111927Wysokie
Coder w wersjach przed 2.29.20, 2.33.0 przed 2.33.12, 2.34.0 przed 2.34.8 oraz 2.35.0 przed 2.35.4 zawiera błąd nieprawidłowej walidacji nazwy hosta w GetWorkspaceProxyByHostname, gdzie wzorzec SIMILAR TO wykonuje dopasowanie prefiksu, przez co dowolna domena będąca prefiksem ciągu adresu URL proxy obszaru roboczego jest uznawana za zaufane proxy. Atakujący posiadający taką domenę może zwabić uwierzytelnioną ofiarę do spreparowanego linku /api/v2/applications/auth-redirect, przechwycić przekierowany klucz API application_connect i użyć go ponownie, aby uzyskać dostęp do aplikacji obszaru roboczego ofiary.
Oryginalny opis (angielski, źródło NVD)
Coder allows organizations to provision remote development environments via Terraform. Prior to versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2, `UpsertWorkspaceApp` overwrites an existing app's `agent_id` on a primary-key conflict and `insertAgentApp` accepts the app ID from the provisioner's `CompleteJob` payload without verifying it belongs to the workspace being built. `CompleteJob` runs under `dbauthz.AsProvisionerd` so the authorization layer does not block the cross-workspace upsert. Exploitation requires elevated access as a template author or external provisioner operator. The fix in versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2 verifies that any existing `workspace_apps` row matching the supplied ID belongs to the workspace being built and rejects cross-workspace agent reassignment. No known workarounds are available.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

