CVE-2026-77425
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 12 - wyżej niż 12% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Uwierzytelniony użytkownik może nieautoryzowanie zmienić kolejność strategii w innych projektach, co może wpłynąć na działanie funkcji i prowadzić do nieoczekiwanego zachowania aplikacji.
Rekomendacja
Zaleca się aktualizację Unleash do wersji 8.0.3 lub nowszej oraz wdrożenie kontroli dostępu weryfikującej przynależność identyfikatorów strategii do odpowiedniego projektu, funkcji i środowiska.
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-76910Średnie
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.
- 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, POST /api/admin/projects/:projectId/features/:featureName/environments/:environment/strategies/set-sort-order passes attacker-controlled strategy IDs to unprotectedUpdateStrategiesSortOrder and updateSortOrder without verifying that the IDs belong to the project, feature, and environment authorized by the URL. In a multi-project Pro or Enterprise deployment, an authenticated user with UPDATE_FEATURE_STRATEGY in one project who knows another project's strategy IDs can reorder those strategies, changing feature evaluation precedence while the operation is attributed to the attacker's URL context rather than the affected project. The single-project OSS edition lacks the cross-project dimension, although the missing context binding still permits unauthorized reordering across features or environments in the default project. The endpoint changes only sort_order and does not modify strategy parameters, constraints, or segments. This issue is fixed in version 8.0.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

