CVE-2026-63466
ŚrednieCVSS 4.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 8 - wyżej niż 8% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wstrzyknąć złośliwe linki do zaufanych powiadomień, co może prowadzić do phishingu lub wprowadzenia użytkowników w błąd.
Rekomendacja
Zaleca się aktualizację Unleash do wersji 8.0.3 lub nowszej, która zawiera poprawkę.
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-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-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, FeatureEventFormatterMd.format in src/lib/addons/feature-event-formatter-md.ts assigns Mustache.escape to an identity function before rendering action and path templates. Because Mustache.escape is process-wide, the assignment disables escaping for subsequent Mustache.render calls in email-service.ts, webhook.ts, datadog.ts, and new-relic.ts. An editor-level user can place Slack or Microsoft Teams link syntax in an unrestricted username, trigger a feature event, and inject an attacker-labeled link into a trusted outbound notification channel, while other Mustache sinks remain unescaped until restart. This issue is fixed in version 8.0.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

