CVE-2026-41454
WysokieCVSS 8.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
WeKan przed wersją 8.35 zawiera brak autoryzacji w punktach końcowych REST API integracji, co pozwala uwierzytelnionym członkom tablicy na wykonywanie działań administracyjnych bez odpowiedniej weryfikacji uprawnień. Atakujący mogą enumerować integracje, w tym adresy URL webhooków, tworzyć nowe integracje, modyfikować lub usuwać istniejące oraz zarządzać aktywnościami integracji, wykorzystując niewystarczające sprawdzanie uprawnień w procedurach REST JsonRoutes.
Ocena ryzyka
Ryzyko polega na możliwości nieautoryzowanego dostępu do wrażliwych danych integracji (np. webhook URL) oraz manipulacji konfiguracją, co może prowadzić do wycieku danych, przerwania działania lub dalszych ataków na systemy zewnętrzne.
Rekomendacja
Należy niezwłocznie zaktualizować WeKan do wersji 8.35 lub nowszej, która zawiera poprawki autoryzacji w punktach końcowych REST API integracji.
Inne podatności w WeKan
Zobacz wszystkie- CVE-2026-55652Krytyczne
Wekan przed wersją 9.46 zawiera podatność w mechanizmie logowania przez nagłówek (header-login), gdzie funkcja getRequestIp() ufa nagłówkowi X-Forwarded-For dostarczonemu przez klienta przed rzeczywistym adresem gniazda. Pozwala to nieuwierzytelnionemu atakującemu na podszycie się pod dowolnego użytkownika, w tym administratora, poprzez wysłanie nagłówka HEADER_LOGIN_ID i uzyskanie sesji meteor_login_token.
- CVE-2026-52893Krytyczne
W Wekan przed wersją 9.32, w hooku Accounts.onCreateUser w server/models/users.js, logowanie przez OIDC jest scalane z istniejącymi kontami, gdy adres e-mail lub nazwa użytkownika OIDC pasuje do istniejącego użytkownika Wekan, bez weryfikacji własności lub sprawdzenia email_verified. Atakujący używający konta OIDC z adresem e-mail lub nazwą użytkownika ofiary może scalić swoje dane uwierzytelniające OIDC z kontem ofiary, a następnie zalogować się jako to konto.
- CVE-2026-52891Krytyczne
Wekan przed wersją 9.07 zawiera podatność na wstrzykiwanie poleceń w funkcji przesyłania awatarów. Nazwy plików dostarczone przez użytkownika są przekazywane do funkcji child_process.exec() bez odpowiedniego oczyszczenia, co umożliwia wykonanie dowolnych poleceń na serwerze poprzez znaki specjalne, takie jak backticki czy $().
- CVE-2026-25560Krytyczne
WeKan przed wersją 8.19 zawiera podatność na wstrzykiwanie filtrów LDAP w mechanizmie uwierzytelniania LDAP. Wprowadzona przez użytkownika nazwa użytkownika jest używana w filtrach wyszukiwania LDAP i wartościach DN bez odpowiedniego escapowania, co umożliwia atakującemu manipulowanie zapytaniami LDAP podczas uwierzytelniania.
- CVE-2026-68901Średnie
Wekan (wersje przed 10.38) zawiera podatność w kilku endpointach eksportu, gdzie token authToken jest pobierany z parametru zapytania i używany bez sprawdzenia, czy użytkownik istnieje. Żądanie do prywatnej tablicy z nieznanym tokenem powoduje TypeError i nieobsłużone odrzucenie, co może doprowadzić do zakończenia procesu Wekan i odmowy usługi dla wszystkich użytkowników. Wersja 10.38 dodaje zabezpieczenia 401 i opakowuje handlery funkcją safeRoute().
- CVE-2026-68900Wysokie
Wekan to open source'owa tablica kanban zbudowana w Meteor. Od wersji 8.72 do 10.23 funkcja addBoardHTMLToZip() w client/lib/exportHTML.js odczytywała tytuł i treść karty przez textContent, co dekodowało encje HTML, a następnie interpolowało titleText i allText do content.innerHTML w wyeksportowanym index.html. Członek tablicy mógł przechowywać zakodowany encją payload obsługi zdarzeń w tytule karty, który pozostawał nieaktywny na żywej tablicy, ale był ponownie parsowany i wykonywany, gdy odbiorca kliknął kartę w pobranym eksporcie HTML, umożliwiając skryptowi odczytanie i przesłanie wszystkich danych tablicy zawartych w tym eksporcie, w tym treści dodane po usunięciu członkostwa atakującego. Wersja 10.23 buduje modal z węzłami DOM i przypisuje niezaufane wartości przez textContent. Problem został naprawiony w wersji 10.23.
- CVE-2026-68899Wysokie
Wekan to open source'owa tablica kanban zbudowana w Meteor. Przed wersją 9.90 funkcja isFileValid() w models/fileValidation.js używała polecenia Unix 'file' do wykrywania MIME na podstawie zawartości, ale detectMimeFromFile() po cichu zwracała undefined, gdy ten binarny plik był niedostępny, a walidacja wracała do kontrolowanego przez atakującego fileObj.type dostarczanego przez server/routes/attachmentApi.js. Na wdrożeniach z WITH_API=true i bez pliku binarnego 'file', uwierzytelniony członek tablicy mógł oznaczyć HTML zawierający JavaScript jako image/png, ominąć niebezpieczne sprawdzenie MIME i przechowywać aktywną treść pod originem Wekan do wykonania, gdy inny użytkownik ją otworzył. Wersja 9.90 dodaje looksLikeDangerousMarkup() do inspekcji bajtów pliku i wymusza skanowanie niebezpiecznej zawartości, gdy wykrywanie MIME jest niedostępne. Problem został naprawiony w wersji 9.90.
- CVE-2026-68561Wysokie
Wekan to open source'owa tablica kanban zbudowana w Meteor. Przed wersją 9.89 druga reguła Boards.allow({ update }) w server/permissions/boards.js wywoływała canUpdateBoardSort w server/lib/utils.js, która autoryzowała każdego członka tablicy, gdy fieldNames zawierało 'sort'. Ponieważ Meteor łączy reguły allow z semantyką OR i stosuje kompletny modyfikator, członek z uprawnieniami tylko do komentarzy lub tylko do odczytu mógł wysłać jedno Boards.update z wartościami $set dla sort, members, permission i title, uczynić siebie jedynym administratorem tablicy, ujawnić prywatną tablicę i usunąć prawowitego właściciela; reguła deny dotycząca ostatniego administratora sprawdzała tylko $pull i nie blokowała całkowitego $set członków. Wersja 9.89 wymaga, aby 'sort' był jedynym modyfikowanym polem i odrzuca tablice $set członków, które usuwają ostatniego aktywnego administratora. Problem został naprawiony w wersji 9.89.
- CVE-2026-68560Wysokie
Wekan to open source'owa tablica kanban zbudowana w Meteor. Przed wersją 9.75, models/fileValidation.js interpolował przesłany fileObj.path do skonfigurowanego przez administratora externalCommandLine w miejscu {file} i wykonywał wynik przez asyncExec, który jest promisify(exec) i wywołuje `/bin/sh -c`. Na wdrożeniach ze skonfigurowanym zewnętrznym skanerem, uwierzytelniony użytkownik mogący przesłać załącznik mógł umieścić metaznaki powłoki, takie jak podstawienia poleceń, w nazwie pliku i wykonać polecenia jako proces serwera Wekan. Wersja 9.75 dodaje shellQuote() i przekazuje ścieżkę pliku jako argument w pojedynczych cudzysłowach POSIX, aby metaznaki powłoki nie mogły uciec z miejsca {file}. Problem został naprawiony w wersji 9.75.
- CVE-2026-68559Średnie
Wekan (wersje od 9.57 do 9.74) zawiera podatność w trasie /api/boards/:boardId/exportExcel, gdzie funkcja autoryzacyjna exporterExcel.canExport(user) nie jest oczekiwana (brak await). Zwracana Promise jest zawsze prawdziwa, więc exporterExcel.build(res) wykonuje się nawet gdy board.isVisibleBy(user) odmawia dostępu. Pozwala to każdemu uwierzytelnionemu nie-członkowi na pobranie tytułów kart, opisów, list, swimlanes, członków i metadanych prywatnych tablic. Poprawka w wersji 9.74.
Oryginalny opis (angielski, źródło NVD)
WeKan before 8.35 contains a missing authorization vulnerability in the Integration REST API endpoints that allows authenticated board members to perform administrative actions without proper privilege verification. Attackers can enumerate integrations including webhook URLs, create new integrations, modify or delete existing integrations, and manage integration activities by exploiting insufficient authorization checks in the JsonRoutes REST handlers.

