CVE-2026-76910
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
Unleash przed wersją 8.0.3, w funkcji cloneFeatureToggle i punkcie końcowym POST /api/admin/projects/:projectId/features/:featureName/clone, autoryzuje tworzenie w docelowym projekcie, ale nie weryfikuje dostępu do projektu źródłowego. Ponieważ nazwy funkcji są globalnie unikalne, użytkownik z uprawnieniem tworzenia lub klonowania w jednym projekcie, znając lub zgadując nazwę funkcji w innym projekcie, może skopiować tę funkcję do autoryzowanego projektu i przeanalizować jej parametry strategii, ograniczenia, warianty i ładunki wariantów. Problem naprawiono w wersji 8.0.3.
Ocena ryzyka
Użytkownik może uzyskać dostęp do wrażliwych danych funkcji z innych projektów, co może prowadzić do ujawnienia poufnych informacji lub naruszenia integralności.
Rekomendacja
Zaleca się aktualizację Unleash do wersji 8.0.3 lub nowszej oraz wdrożenie kontroli dostępu weryfikującej uprawnienia do projektu źródłowego podczas klonowania funkcji.
Inne podatności w Unleash
Zobacz wszystkie- CVE-2026-77426Wysokie
Unleash przed wersją 8.0.3 zawiera pięć podatności w API administracyjnym, które pozwalają uwierzytelnionym użytkownikom na modyfikację przypisań segmentów, ujawnienie konfiguracji wariantów, strategii i informacji o środowisku między projektami oraz modyfikację tagów między projektami, bez odpowiednich uprawnień.
- CVE-2026-77425Średnie
Unleash przed wersją 8.0.3, w punkcie końcowym POST /api/admin/projects/:projectId/features/:featureName/environments/:environment/strategies/set-sort-order, przekazuje kontrolowane przez atakującego identyfikatory strategii do niechronionych funkcji updateStrategiesSortOrder i updateSortOrder bez weryfikacji, czy identyfikatory należą do projektu, funkcji i środowiska autoryzowanych przez URL. W wieloprojektowym wdrożeniu Pro lub Enterprise, uwierzytelniony użytkownik z uprawnieniem UPDATE_FEATURE_STRATEGY w jednym projekcie, znając identyfikatory strategii innego projektu, może zmienić ich kolejność, zmieniając priorytet oceny funkcji, podczas gdy operacja jest przypisywana do kontekstu URL atakującego, a nie do dotkniętego projektu. Wersja OSS z jednym projektem nie ma wymiaru międzyprojektowego, chociaż brak wiązania kontekstu nadal umożliwia nieautoryzowaną zmianę kolejności w obrębie funkcji lub środowisk w domyślnym projekcie. Punkt końcowy zmienia tylko sort_order i nie modyfikuje parametrów strategii, ograniczeń ani segmentów. Problem naprawiono w wersji 8.0.3.
- CVE-2026-76909Niskie
Unleash to platforma zarządzania funkcjami open-source. Przed wersją 8.0.3 szablon e-maila zatwierdzania zmian (requested-cr-approval.html.mustache) renderuje wartości changeRequestTitle, requesterName i requesterEmail bez escapowania HTML, a funkcja sendRequestedCRApprovalEmail przekazuje te wartości do renderowania Mustache. Członek projektu, który może utworzyć prośbę o zmianę, gdy e-maile zatwierdzające są włączone, może wstrzyknąć HTML do powiadomienia zatwierdzającego, umożliwiając sfałszowane linki, treści śledzące lub wizualnie zmienioną treść e-maila. Problem naprawiono w wersji 8.0.3.
- CVE-2026-63466Średnie
W Unleash przed wersją 8.0.3, funkcja FeatureEventFormatterMd.format przypisuje Mustache.escape do funkcji tożsamości przed renderowaniem szablonów akcji i ścieżek. To wyłącza escapowanie dla kolejnych wywołań Mustache.render w email-service.ts, webhook.ts, datadog.ts i new-relic.ts. Użytkownik na poziomie edytora może wstawić składnię linków Slack lub Microsoft Teams w nieograniczonej nazwie użytkownika, wywołać zdarzenie funkcji i wstrzyknąć link oznaczony przez atakującego do zaufanego kanału powiadomień wychodzących, podczas gdy inne sinki Mustache pozostają nieescapowane do czasu restartu.
- CVE-2026-63462Wysokie
Unleash to platforma zarządzania funkcjami open-source. Przed wersjami 7.5.2, 7.6.5 i 8.0.2 wspólna ścieżka błędów walidacji OpenAPI w src/lib/error/bad-data-error.ts przekazuje surową wartość żądania z lodash.get do JSON.stringify w genericErrorMessage i fromOpenAPIValidationErrors bez zabezpieczenia przed przepełnieniem stosu. Nieuwierzytelniony atakujący może wysłać około 10 KB wartości JSON zagnieżdżonej tysiące poziomów w głąb do POST /edge/validate, POST /edge/issue-token lub innego punktu końcowego z walidacją OpenAPI, powodując RangeError: Maximum call stack size exceeded w openAPIValidationMiddleware i kończąc proces Node, ponieważ brak obsługi uncaughtException. Powtarzanie żądania może spowodować całkowitą awarię usługi. Problem naprawiono w wersjach 7.5.2, 7.6.5 i 8.0.2.
- CVE-2026-63004Średnie
W Unleash przed wersjami 7.5.2, 7.6.5 i 8.0.2, podsystem dodatków i integracji przekazuje wartość parameters.url z webhook.ts oraz integracji Slack, Microsoft Teams, Datadog i New Relic do Addon.fetchRetry bez ograniczania adresów loopback, link-local, prywatnych lub metadanych chmury. Uwierzytelniony aktor z uprawnieniami root CREATE_ADDON lub UPDATE_ADDON może spowodować, że serwer wyśle żądania z wewnątrz swojej sieci, użyć statusu zdarzeń integracji jako ślepego sondy, przekazać nagłówki Authorization, customHeaders lub DD-API-KEY do hosta obserwowanego przez atakującego oraz dostarczyć JSON treści zdarzenia funkcji do usług wewnętrznych.
Oryginalny opis (angielski, źródło NVD)
Unleash is an open-source feature management platform. Prior to 8.0.3, cloneFeatureToggle and POST /api/admin/projects/:projectId/features/:featureName/clone authorize creation in the destination project but do not verify access to the source project. Because feature names are globally unique, a user with create or clone permission in one project who knows or guesses another project's feature name can copy that feature into the authorized project and inspect its strategy parameters, constraints, variants, and variant payloads. This issue is fixed in version 8.0.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

