CVE-2026-85055
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może rekonstruować wartości pól, do których nie ma uprawnień, naruszając poufność danych w CRM. Może to prowadzić do wycieku wrażliwych informacji biznesowych i naruszenia polityk bezpieczeństwa.
Rekomendacja
Zaktualizować Twenty do wersji 2.22.0 lub nowszej. Do czasu aktualizacji ograniczyć możliwość tworzenia zapisanych widoków i filtrów oraz monitorować nietypowe wzorce zapytań.
Inne podatności w Twenty
Zobacz wszystkie- 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-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-82274Średnie
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.
- 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 is an open-source CRM (customer relationship management) platform. Prior to 2.22.0, field-level read permission is enforced on selected output fields but not on GraphQL or REST filter predicates. A workspace member or API key with permission to read an object but not a particular field can reference that denied field in direct filters, relation filters, or persisted view filters. The resulting totalCount and row presence reveal whether guesses match the real column, forming a boolean/count oracle that can reconstruct denied field values for records exposed by the principal's row-level policy. This issue is fixed in version 2.22.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

