CVE-2026-77426
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 39 - wyżej niż 39% wszystkich znanych CVE
Streszczenie
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ń.
Ocena ryzyka
Atakujący może uzyskać nieautoryzowany dostęp do konfiguracji funkcji, zmienić ustawienia projektów lub ujawnić wrażliwe dane, co narusza integralność i poufność.
Rekomendacja
Zaktualizuj Unleash do wersji 8.0.3 lub nowszej.
Inne podatności w Unleash
Zobacz wszystkie- 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-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, the Unleash admin API contains five authorization vulnerabilities. POST /api/admin/segments/strategies assigns the Promise returned by hasPermission without awaiting it, allowing authenticated users to modify segment assignments without UPDATE_FEATURE_STRATEGY permission for the target project and environment. GET /api/admin/projects/:projectId/features/:featureName/environments/:environment/variants does not bind the requested feature to projectId, allowing cross-project variant configuration disclosure. GET .../strategies/:strategyId uses strategyId without validating the project and feature context, allowing cross-project strategy configuration disclosure. getEnvironmentInfo does not validate that the requested feature belongs to the supplied project, allowing cross-project environment information disclosure. PUT /:projectId/tags accepts feature identifiers without verifying that they belong to the URL project, allowing cross-project tag modification. This issue is fixed in version 8.0.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

