CVE-2026-76909
NiskieCVSS 2.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 17 - wyżej niż 17% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wstrzyknąć złośliwy HTML do e-maili zatwierdzających, co może prowadzić do phishingu, śledzenia użytkowników lub manipulacji treścią wiadomości.
Rekomendacja
Zaktualizuj 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-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 change-request approval email template at src/mailtemplates/requested-cr-approval/requested-cr-approval.html.mustache renders the user-controlled changeRequestTitle, requesterName, and requesterEmail values without HTML escaping, and sendRequestedCRApprovalEmail passes those values to Mustache rendering. A project member who can create a change request when approval emails are enabled can inject HTML into an approver's notification, allowing forged links, tracking content, or visually altered email content. This issue is fixed in version 8.0.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

