CVE-2026-45806
WysokieCVSS 7.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
Podatność w Penpot przed wersją 2.15.0 umożliwiała uwierzytelnionemu edytorowi plików na dostęp do wewnętrznych punktów końcowych poprzez import zdalnego obrazu. Problem wynikał z braku filtrowania docelowego adresu URL w kliencie HTTP używanym do pobierania obrazów.
Ocena ryzyka
Atakujący może wykorzystać tę lukę do skanowania wewnętrznej sieci, uzyskania dostępu do poufnych usług lub przeprowadzenia ataków SSRF, co może prowadzić do wycieku danych lub naruszenia integralności systemu.
Rekomendacja
Należy niezwłocznie zaktualizować Penpot do wersji 2.15.0 lub nowszej, która zawiera poprawkę filtrującą docelowe adresy URL podczas importu zdalnych obrazów.
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-105688Średnie
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.
Oryginalny opis (angielski, źródło NVD)
Penpot is an open-source design tool for design and code collaboration. Prior to 2.15.0, Penpot's remote image import passed the user-controlled url from frontend/src/app/main/data/workspace/media.cljs into the backend RPC method :create-file-media-object-from-url in backend/src/app/rpc/commands/media.clj, where media/download-image in backend/src/app/media.clj used the shared HTTP client without destination filtering, allowing an authenticated file editor to reach internal-only endpoints. This issue is fixed in version 2.15.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

