CVE-2026-105688
ŚrednieCVSS 6.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 17 - wyżej niż 17% wszystkich znanych CVE
Streszczenie
W Penpot przed wersją 2.18.0 procedury create-team-invitations oraz ścieżka akceptacji zaproszenia pozwalają administratorowi zespołu niebędącemu właścicielem przypisać rolę właściciela, ponieważ role zaproszeń są zapisywane i stosowane bez sprawdzenia limitu roli używanego w update-team-member-role. Administrator może zaprosić inne konto jako właściciela, utworzyć wielu właścicieli i przejąć kontrolę zarezerwowaną dla właściciela.
Ocena ryzyka
Administrator zespołu może eskalować uprawnienia i przejąć pełną kontrolę nad zespołem, co narusza model uprawnień i może prowadzić do nieautoryzowanych zmian lub utraty danych.
Rekomendacja
Zaktualizuj Penpot do wersji 2.18.0 lub nowszej. Do czasu aktualizacji ogranicz liczbę administratorów zespołów i monitoruj zmiany ról oraz zaproszenia.
Inne podatności w Penpot
Zobacz wszystkie- CVE-2026-105691Krytyczne
Penpot przed wersją 2.18.0 w eksporcie SVG umieszcza wartość koloru wypełnienia kontrolowanego przez atakującego obiektu tekstowego w ciągu polecenia ppmcolormask i wykonuje go przez child_process.exec. Użytkownik, który może edytować plik, może przechowywać metaznaki powłoki w kolorze wypełnienia i wywołać eksport SVG, powodując wykonanie poleceń z uprawnieniami usługi eksportera. Ten sam eksport może być wywołany przez ważny publiczny link do złośliwego pliku.
- CVE-2026-44986Krytyczne
Podatność w Penpot przed wersją 2.14.5 umożliwiała przejęcie konta poprzez wykorzystanie tokenów zaproszeń, osadzenie identyfikatora profilu oraz brak weryfikacji hasła przy rejestracji sesji na podstawie dopasowania adresu e-mail.
- CVE-2026-105696Średnie
Penpot to platforma do projektowania i prototypowania o otwartym kodzie źródłowym. Przed wersją 2.18.0, RPC get-page akceptuje obiekt uprawnień linku udostępniającego z pełnym dostępem do odczytu, ale nie weryfikuje, czy wybrane przez wywołującego page-id należy do zestawu autoryzowanych stron linku. Atakujący z ważnym linkiem udostępniającym i własną uwierzytelnioną sesją Penpot może pobrać pełne dane kształtów i projektu innej strony w tym samym pliku, jeśli zna jej identyfikator, ponieważ get-page wymaga uwierzytelnienia. Powiązany RPC get-file-fragment również pozwala na dostęp przez link udostępniający bez mapowania fragmentów do autoryzowanych stron. Problem naprawiono w wersji 2.18.0.
- CVE-2026-105695Średnie
Penpot to platforma do projektowania i prototypowania o otwartym kodzie źródłowym. Przed wersją 2.18.0, assemble-chunks pobiera sesję przesyłania tylko na podstawie jej identyfikatora sesji, podczas gdy upload-chunk poprawnie ogranicza wyszukiwanie do uwierzytelnionego profilu. Uwierzytelniony użytkownik, który zdobędzie identyfikator UUID aktywnej, zakończonej sesji przesyłania innego użytkownika, może złożyć fragmenty ofiary do własnego pliku, czcionki zespołu lub importu projektu, ujawniając przesłane bajty i usuwając oczekującą sesję ofiary. Problem naprawiono w wersji 2.18.0.
- CVE-2026-105694Średnie
Penpot to platforma do projektowania i prototypowania o otwartym kodzie źródłowym. Przed wersją 2.18.0, uwierzytelnieni użytkownicy z uprawnieniami do edycji plików mogą przesyłać media SVG, których skrypty, atrybuty obsługi zdarzeń i elementy foreignObject są przechowywane bez sanityzacji i serwowane jako image/svg+xml z pochodzenia Penpot. Ofiara, która przejdzie na adres URL zasobu, wykonuje kontrolowany przez atakującego JavaScript w tym pochodzeniu, co pozwala na żądania i dostęp do danych z uprawnieniami sesji ofiary w Penpot. Problem naprawiono w wersji 2.18.0.
- CVE-2026-105693Średnie
Penpot to platforma do projektowania i prototypowania o otwartym kodzie źródłowym. Przed wersją 2.18.0, nieuwierzytelniony RPC get-view-only-bundle zwraca wszystkie wiersze linków udostępniających dla pliku, nawet gdy wywołujący uwierzytelnił się tylko jednym linkiem o ograniczonym zakresie. Posiadacz restrykcyjnego linku może uzyskać sekretne identyfikatory innych linków, zakresy stron, uprawnienia do komentarzy i uprawnienia do inspekcji, a następnie odtworzyć bardziej permisywny token, aby uzyskać dostęp do danych stron, które nie były uwzględnione w oryginalnym udostępnieniu. Problem naprawiono w wersji 2.18.0.
- CVE-2026-105692Średnie
W Penpot przed wersją 2.18.0 procedura delete-share-link weryfikuje jedynie uprawnienia edycji pliku nadrzędnego, nie sprawdzając, czy wywołujący utworzył dany link ani czy ma uprawnienia właściciela lub administratora. Każdy edytor pliku znający UUID linku udostępniania może usunąć linki utworzone przez innych użytkowników i odebrać dostęp zewnętrznym recenzentom.
- CVE-2026-105690Średnie
W Penpot przed wersją 2.18.0 wylogowanie usuwa jedynie cookie z tokenem uwierzytelniającym w przeglądarce, nie unieważniając odpowiadającej sesji po stronie serwera. Wcześniej przechwycony token sesji pozostaje ważny po wylogowaniu ofiary i pozwala na dalsze uwierzytelnione żądania z jej uprawnieniami aż do naturalnego wygaśnięcia.
- CVE-2026-105689Średnie
W Penpot przed wersją 2.18.0 funkcja app.util.ssrf/blocked-address? opiera się na predykatach Java InetAddress, które nie klasyfikują adresów NAT64, 6to4 ani Teredo, a dodatkowe sprawdzenia CIDR stosuje tylko do adresów IPv4. Użytkownik kontrolujący URL importu mediów lub administrator kontrolujący URL webhooka może podać adres przejściowy IPv6 osadzający docelowy adres IPv4 (metadane chmury, loopback, link-local, prywatny) i obejść ograniczenia SSRF.
- CVE-2026-105687Średnie
W Penpot przed wersją 2.18.0 procedura delete-team-member pozwala administratorowi zespołu usunąć dowolnego członka poza sobą, ale nie chroni właściciela zespołu. Administrator niebędący właścicielem może usunąć członkostwo team-profile-rel właściciela i zablokować mu dostęp do zespołu oraz jego projektów, plików, czcionek i mediów.
Oryginalny opis (angielski, źródło NVD)
Penpot is an open-source design and prototyping platform. Prior to 2.18.0, create-team-invitations and the invitation acceptance path allow a non-owner team administrator to assign the owner role because invitation roles are persisted and applied without the role-ceiling check used by update-team-member-role. An administrator can invite another account as an owner, create multiple owners, and then use the new owner account to obtain owner-only control over the team. This issue is fixed in version 2.18.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

