CVE-2026-82274
ŚrednieCVSS 4.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 13 - wyżej niż 13% wszystkich znanych CVE
Streszczenie
Twenty do wersji 2.35.0 zawiera podatność na otwarte przekierowanie w punkcie końcowym OAuthPropagatorController.propagateOAuthCallback, który traktuje parametr state jako adres URL przekierowania. Atakujący mogą tworzyć złośliwe żądania, aby przekierować użytkowników na dowolne hosty, jednocześnie przekazując kody autoryzacji OAuth, omijając walidację domeny, gdy IS_MULTIWORKSPACE_ENABLED jest wyłączone.
Ocena ryzyka
Atakujący może przekierować użytkowników na złośliwe strony, co może prowadzić do kradzieży danych uwierzytelniających lub innych ataków phishingowych.
Rekomendacja
Zaktualizuj Twenty do wersji, która zawiera poprawki walidacji przekierowań. Dodatkowo włącz IS_MULTIWORKSPACE_ENABLED, jeśli to możliwe, i monitoruj nietypowe żądania OAuth.
Inne podatności w Twenty
Zobacz wszystkie- CVE-2026-105763Krytyczne
Twenty to platforma CRM o otwartym kodzie źródłowym. Od wersji 1.20.10 do 2.7.0 zapytanie GraphQL /metadata connectedAccounts zwracało connectionParameters z ConnectedAccountDTO dla każdego konta w przestrzeni roboczej, w tym hasła IMAP, SMTP i CalDAV w postaci jawnego tekstu, ponieważ pole nie było ukryte, a wyszukiwanie nie wymuszało tożsamości ani widoczności konta. Zwykły członek przestrzeni roboczej mógł uzyskać poświadczenia usług zewnętrznych innych członków i wykorzystać je do dostępu do poczty lub kalendarzy oraz potencjalnie zresetować konta osób trzecich. Przestrzenie robocze korzystające wyłącznie z OAuth Google i Microsoft nie były dotknięte. Problem naprawiono w wersji 2.7.0.
- CVE-2026-73069Krytyczne
Twenty przed wersją 2.15.0 pozwala administratorowi z uprawnieniem DATA_MODEL na dostarczenie niesprawdzonego wyrażenia dla pola TS_VECTOR, co prowadzi do wstrzyknięcia SQL i wykonania dowolnych zapytań PostgreSQL jako użytkownik aplikacji.
- CVE-2026-85055Wysokie
Twenty to otwarta platforma CRM. Przed wersją 2.22.0 uprawnienia do odczytu na poziomie pola są egzekwowane dla wybranych pól wyjściowych, ale nie dla predykatów filtrów GraphQL lub REST. Członek przestrzeni roboczej lub klucz API z uprawnieniem do odczytu obiektu, ale bez dostępu do konkretnego pola, może odwołać się do tego pola w filtrach bezpośrednich, relacyjnych lub zapisanych, a wynikowe totalCount i obecność wierszy ujawniają, czy zgadywane wartości pasują do rzeczywistej kolumny, tworząc wyrocznię boolean/count.
- CVE-2026-92771Średnie
Twenty w wersjach przed 2.35.0 nie waliduje uprawnień do pól i wierszy w resolverze GraphQL groupBy-with-records, co pozwala uwierzytelnionym użytkownikom obejść kontrole uprawnień. Atakujący z uprawnieniem canReadObjectRecords, ale bez canReadFieldValue, może odczytać zastrzeżone wartości pól przez resolver groupBy, które normalnie byłyby zablokowane.
- CVE-2026-33975Wysokie
Twenty (CRM open source) w wersjach 1.18.0 i wcześniejszych ma podatność SSRF, w której ochrona w SecureHttpClientService może być ominięta przez użycie adresów IPv4 zamapowanych na IPv6 w literałach IP URL. Node.js normalizuje takie adresy do skompresowanej postaci szesnastkowej, ale funkcja isPrivateIp rozpoznaje tylko notację dziesiętną z kropkami.
Oryginalny opis (angielski, źródło NVD)
Twenty through 2.35.0 contains an open redirect vulnerability in the OAuthPropagatorController.propagateOAuthCallback endpoint that treats the state query parameter as a redirect URL. Attackers can craft malicious requests to redirect users to arbitrary hosts while forwarding OAuth authorization codes, bypassing domain validation when IS_MULTIWORKSPACE_ENABLED is disabled.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

