CVE-2026-105633
WysokieCVSS 7.1Streszczenie
W Plane przed wersją 1.4.0 endpoint PATCH dla załączników zgłoszeń V2 przyjmuje issue_id w adresie URL, ale pomija go w zapytaniu do bazy danych. Członek projektu może podać własny issue_id w URL, a mimo to zmodyfikować załącznik innego użytkownika, dopasowując go po UUID (pk). Gdy załącznik jest w stanie oczekującym, procedura PATCH ustawia created_by na atakującego i przenosi własność załącznika.
Ocena ryzyka
Atakujący z niskimi uprawnieniami może przejąć własność cudzych załączników w projekcie, co prowadzi do naruszenia poufności i integralności danych. Może to skutkować nieautoryzowanym dostępem do plików oraz dalszymi atakami w ramach aplikacji.
Rekomendacja
Zaktualizuj Plane do wersji 1.4.0 lub nowszej, która naprawia tę podatność. Do czasu aktualizacji ogranicz możliwość przesyłania i modyfikowania załączników przez użytkowników o niskich uprawnieniach.
Inne podatności w Plane
Zobacz wszystkie- CVE-2026-105635Wysokie
Plane to narzędzie do zarządzania projektami o otwartym kodzie źródłowym. Przed wersją 1.4.0 endpoint ProjectJoinEndpoint w GET /api/workspaces/{slug}/projects/{project_id}/join/{pk}/ używa permission_classes = [AllowAny] i zwraca pełny rekord ProjectMemberInvite, w tym adres e-mail, token i rolę, nieuwierzytelnionym wywołującym. Odpowiadający endpoint POST sprawdza tylko, czy przesłany e-mail zgadza się z project_invite.email i nie weryfikuje tokena zaproszenia. Atakujący, który zna UUID zaproszenia, może odkryć zaproszony e-mail, zarejestrować konto z tym adresem i zaakceptować zaproszenie bez otrzymania oryginalnego zaproszenia. Problem został naprawiony w wersji 1.4.0.
- CVE-2026-105634Wysokie
Plane to narzędzie do zarządzania projektami o otwartym kodzie źródłowym. Przed wersją 1.3.0 metoda ProjectMemberViewSet.partial_update pozwala każdemu członkowi projektu, w tym użytkownikowi z najniższą rolą GUEST, na modyfikację roli innego członka projektu. Kontrola autoryzacji zapobiega przypisaniu roli wyższej niż rola żądającego, ale nie zapobiega przypisaniu roli niższej lub równej, co pozwala Gościowi zdegradować Administratorów i Członków oraz pozbawić ich kontroli nad projektem. Podatność została naprawiona w wersji 1.3.0.
- CVE-2026-105632Wysokie
W Plane przed wersją 1.4.0 mutacja GraphQL joinProject pozwala dowolnemu członkowi przestrzeni roboczej dodać się do dowolnego projektu w tej przestrzeni, w tym do projektów oznaczonych jako sieć=0 (tajne/prywatne), do których nie został zaproszony, i przyznaje mu pełną rolę Member (odczyt i zapis). Resolver sprawdza tylko członkostwo i rolę na poziomie przestrzeni roboczej, nigdy nie weryfikuje widoczności (network) docelowego projektu. Prowadzi to do zniesienia izolacji projektów w ramach przestrzeni roboczej.
- CVE-2026-105631Wysokie
W Plane przed wersją 1.4.0 endpointy WorkspaceFileAssetEndpoint.get i WorkspaceAssetDownloadEndpoint.get rozwiązują rekordy FileAsset w przestrzeni roboczej bez sprawdzania członkostwa w projekcie zasobu, co pozwala członkowi przestrzeni pobierać zasoby z prywatnych projektów, jeśli zna UUID zasobu. EntityAssetEndpoint.get to osobny publiczny endpoint z dostępem AllowAny, który ogranicza wyszukiwanie tylko do przestrzeni roboczej kotwicy, a nie do jej opublikowanej encji lub projektu. Nieuwierzytelniony wywołujący znający prawidłową kotwicę i UUID zasobu może pobrać zasoby opisów zgłoszeń lub komentarzy należące do nieopublikowanych lub prywatnych projektów w tej przestrzeni.
- CVE-2026-105630Wysokie
W Plane przed wersją 1.4.0 uwierzytelniony członek przestrzeni roboczej o niskich uprawnieniach, w tym Gość, może przesłać plik image/svg+xml jako załącznik ogólny lub do zgłoszenia. Plik zachowuje kontrolowany przez atakującego nagłówek Content-Type, a endpoint pobierania zasobów tworzy presigned URL z Content-Disposition: inline. W domyślnym wdrożeniu self-hosted MinIO adres URL zasobu jest serwowany z tej samej domeny co aplikacja Plane, co pozwala na wykonanie osadzonego JavaScriptu SVG w kontekście bezpieczeństwa aplikacji. Ofiara, w tym administrator przestrzeni roboczej, otwierając link, może mieć przejętą sesję poprzez stored XSS, co prowadzi do przejęcia konta.
- CVE-2026-105629Wysokie
W Plane przed wersją 1.4.0 BulkEstimatePointEndpoint.destroy rozwiązuje punkt estymacji poprzez bezpośrednie wyszukiwanie po kluczu głównym, bez ograniczenia do przestrzeni roboczej, projektu lub estymacji. Administrator lub członek jednej przestrzeni roboczej może trwale usunąć punkt estymacji należący do innej przestrzeni, podając docelowy UUID w adresie URL w ramach własnej przestrzeni. Tworzy to destrukcyjny cross-tenant IDOR.
- CVE-2026-105628Wysokie
W Plane przed wersją 1.4.0 proces synchronizacji awatarów OAuth pobiera avatar_url z danych użytkownika dostawcy poprzez żądanie HTTP po stronie serwera bez walidacji wewnętrznych adresów IP i domyślnie podąża za przekierowaniami. Atakujący może podać adres URL awatara, który przekierowuje do zasobu wewnętrznego, takiego jak endpoint metadanych, a Plane przesyła pobraną odpowiedź jako plik awatara użytkownika. Obiekt jest następnie udostępniany przez /api/assets/v2/static/{asset_id}/, co pozwala na eksfiltrację wewnętrznie pobranej treści.
- CVE-2026-104979Wysokie
W Plane (open-source narzędzie do zarządzania projektami) w wersjach przed 1.4.0 występuje podatność XSS. IntakeIssuePublicViewSet.create w wersji 1.3.1 zapisuje description_html bez walidacji przy użyciu validate_html_content z nh3. Uwierzytelniony użytkownik może umieścić dowolny HTML w projekcie z opublikowanym DeployBoard i włączonym intake, a po kliknięciu przez ofiarę następuje wykonanie JavaScriptu i kradzież tokenu API.
- CVE-2026-104978Wysokie
W Plane (open-source narzędzie do zarządzania projektami) w wersjach przed 1.4.0 endpoint listy zaproszeń projektowych jest dostępny dla każdego uwierzytelnionego użytkownika znającego slug workspace i ID projektu. Publiczny endpoint akceptacji zaproszenia przyjmuje zaproszenie na podstawie podanego adresu e-mail. Atakujący może wyliczyć zaproszenie, zarejestrować konto na zaproszony e-mail bez weryfikacji skrzynki i zaakceptować zaproszenie, dodając swoje konto do workspace i projektu.
- CVE-2026-104977Wysokie
W Plane (open-source narzędzie do zarządzania projektami) w wersjach przed 1.4.0 poprawka dla CVE-2026-27706 i GHSA-jcc6-f9v6-f7jw dotycząca SSRF w odwijaniu linków do elementów pracy jest niekompletna w wersji 1.3.1 GA. Każdy uwierzytelniony członek projektu może zmusić serwer do pobrania wybranych wewnętrznych celów, w tym metadanych chmury pod 169.254.169.254, i odczytać treść odpowiedzi jako tytuł linku lub faviconę.
Oryginalny opis (angielski, źródło NVD)
Plane is an open-source project management tool. Prior to 1.4.0, the V2 issue-attachment PATCH endpoint accepts issue_id in the URL but omits it from the database query. A project member can use an issue_id they control in the URL while targeting another user's attachment by its pk UUID. Because the server matches only pk, workspace, and project_id, it modifies the attachment regardless of the issue_id in the URL. When the attachment is pending and has not been confirmed as uploaded, the PATCH handler sets created_by = request.user and transfers attachment ownership to the attacker. This issue is fixed in 1.4.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

