Krytyczna

Storybook: Brak weryfikacji pochodzenia w Storybook preview umożliwia wstrzyknięcie kodu przez złośliwe witryny

  • Ujawniono: 21.10.2026
  • Aktualizacja: 21.10.2026 20:26

Podsumowanie

Złośliwa witryna internetowa może być w stanie doprowadzić do nieautoryzowanych modyfikacji plików w projekcie programisty podczas działania podatnego serwera deweloperskiego Storybook. W określonych warunkach zmodyfikowany plik może zostać wykonany przez lokalne środowisko uruchomieniowe z uprawnieniami programisty. Twórcy oprogramowania nie odnotowali przypadków aktywnego wykorzystania podatności w środowisku rzeczywistym.

Kogo dotyczy problem?

Problem dotyczy użytkowników uruchamiających serwer deweloperski Storybook w podatnych wersjach.

Podatność nie dotyczy użytkowników, którzy:

  • uruchamiają serwer deweloperski, którego nigdy nie otwierają w przeglądarce internetowej (np. automatyzacja headless, klienci MCP)
  • uruchamiają lub odwiedzają zbudowaną (skompilowaną) wersję Storybook

Nowsze wersje przeglądarek Chrome i Firefox mogą wymagać potwierdzenia uprawnień przed nawiązaniem połączenia przez stronę internetową z usługą localhost. Zmniejsza to ryzyko, lecz go nie eliminuje. Nie należy przyznawać tych uprawnień niezaufanym witrynom.

Przegląd potencjalnie niekompatybilnych zmian (breaking changes)

Ze względu na wyjątkowy charakter zgłoszonych podatności zespół Storybook zdecydował o zmianie domyślnego zachowania Storybook (w tym wersji 8 oraz 9) w odniesieniu do funkcji sieciowych, które nie są niezbędne dla pracy większości użytkowników. Dla zespołów korzystających z tych funkcji dodano flagi funkcjonalne (feature flags), które umożliwiają wyłączenie określonych mechanizmów bezpieczeństwa w celu zachowania istniejących procesów.

Należy dokładnie zapoznać się z wprowadzonymi flagami oraz konsekwencjami ich użycia:

  • Domyślne wyłączenie osadzania w ramkach iframe przez sieć: Storybook nie pozwala już na osadzanie managera ani podglądu (preview) wewnątrz elementów iframe na witrynach o innej nazwie hosta. Zbudowane wersje Storybook nie są objęte tą zmianą i mogą być swobodnie osadzane. W przypadku konieczności osadzania serwera deweloperskiego przez osobną aplikację webową należy uruchomić ją na localhost. Można także użyć flagi security.insecureRemoteIframeEmbed, aby ponownie zezwolić na osadzanie w ramkach z dowolnego źródła.
  • Odrzucanie przez ramkę preview wiadomości od nieznanych hostów: Zarówno preview, jak i manager Storybook ograniczają obecnie pochodzenie (origin) ramek iframe i okien nadrzędnych, z którymi mogą wymieniać wiadomości za pośrednictwem API postMessage. Domyślnie Storybook w trybie deweloperskim akceptuje komunikację wyłącznie z własnym źródłem oraz innymi usługami localhost. Zbudowane wersje Storybook nadal akceptują komunikację z nieznanych źródeł. Jeśli dany dodatek lub integracja wykorzystuje postMessage do modyfikowania argumentów historii na żywo, zaleca się kontakt z zespołem Storybook w celu wypracowania bezpiecznych rozwiązań. Kompozycja Storybook również bazuje na postMessage, przez co skomponowany Storybook z innego źródła nie załaduje się, o ile nie został wcześniej zbudowany. Flaga security.insecureIframeMessaging wyłącza to zabezpieczenie, jednak rekomendowanym podejściem jest budowanie skomponowanych instancji.
  • Zmiana sygnatury zdarzenia highlight: Wbudowany dodatek ułatwień dostępu (accessibility) Storybook używa zdarzenia highlight do wstrzykiwania w podglądzie klikalnych wyróżnień, które otwierają menu z linkiem do dokumentacji. API tego zdarzenia było zbyt permisywne i mogło zostać wykorzystane do wywoływania dowolnych zdarzeń, w tym przetwarzanych przez lokalny serwer deweloperski. API zostało zmodyfikowane w celu zapobiegania nadużyciom. Oprócz dodatku ułatwień dostępu, z interfejsu tego korzysta dodatek Visual Tests od Chromatic do linkowania dokumentacji z wyróżnionych ignorowanych elementów. Aby zachować działanie tych linków, należy zaktualizować dodatek Visual Tests do wersji 5.5.1 lub nowszej. Ponieważ według wiedzy autorów żadne inne dodatki nie używają tego API, nie wprowadzono flagi przywracającej stare zachowanie.

Oś czasu ujawnienia

30th września zespół Storybook otrzymał zgłoszenie w ramach odpowiedzialnego ujawniania podatności, opisujące możliwość osadzenia ramki preview serwera deweloperskiego przez złośliwą stronę oraz wysyłania zdarzeń do serwera na maszynie dewelopera.

Informacje te połączono z ustaleniami z trwającego audytu bezpieczeństwa, co pozwoliło opracować najgorszy możliwy scenariusz wykorzystania podatności (uwzględniający również luki odkryte niezależnie). Następnie wdrożono poprawki na wszystkich etapach wymaganych do realizacji takiego ataku. Nie odnotowano dowodów na wykorzystanie podatności w rzeczywistych projektach Storybook. Przedstawiony scenariusz ataku wymaga pomyślnego wykorzystania ciągu wielu luk, z których część nie była wcześniej zgłoszona zespołowi Storybook.

Najgorszy scenariusz ataku

Kontrolowana przez atakującego witryna internetowa może wchodzić w interakcję z podglądem uruchomionego serwera deweloperskiego Storybook. Przy udziale interakcji użytkownika może to doprowadzić do wprowadzenia przez serwer deweloperski nieautoryzowanych zmian w plikach historii. W przypadku późniejszego wykonania złośliwego pliku przez lokalne środowisko uruchomieniowe atak może skutkować wykonaniem dowolnego kodu z uprawnieniami dewelopera.

Co trzeba zrobić

Przed ponownym uruchomieniem storybook dev należy zaktualizować Storybook do wersji zawierającej poprawki:

  • 11.0.0-alpha.6
  • 10.6.2
  • 9.1.21
  • 8.6.19

Jeżeli natychmiastowa aktualizacja nie jest możliwa, należy wstrzymać się z uruchamianiem podatnego serwera deweloperskiego Storybook do czasu wdrożenia poprawki.

Ponadto zaleca się aktualizację dodatku Chromatic Visual Tests do wersji 5.5.1 lub nowszej, aby zapewnić prawidłowe działanie odnośników do dokumentacji.

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka npm storybook >= 8.0.0, < 8.6.19, >= 9.0.0, < 9.1.21, >= 10.0.0, < 10.6.2, >= 11.0.0-alpha.0, < 11.0.0-alpha.6 8.6.19, 9.1.21, 10.6.2, 11.0.0-alpha.6
Paczka npm @storybook/addon-mcp >= 10.6.0, < 10.6.2, >= 11.0.0-alpha.0, < 11.0.0-alpha.6 10.6.2, 11.0.0-alpha.6
Paczka npm @storybook/addon-vitest >= 9.0.0, < 9.1.21, >= 10.0.0, < 10.6.2, >= 11.0.0-alpha.0, < 11.0.0-alpha.6 9.1.21, 10.6.2, 11.0.0-alpha.6
Paczka npm @storybook/core >= 8.0.0, < 8.6.19 8.6.19
Paczka npm @storybook/core-server >= 8.0.0, < 8.6.19 8.6.19
Paczka npm @storybook/experimental-addon-test >= 8.0.0, < 8.6.19 8.6.19

Odnośniki

Ocena CVSS -
Wektor CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Słabość (CWE)
CWE-1021, CWE-22, CWE-346, CWE-441, CWE-749, CWE-862, CWE-94, CWE-96
Platforma
npm
Paczka
storybook, @storybook/addon-mcp, @storybook/addon-vitest
Ujawniono
21.10.2026
Aktualizacja
21.10.2026 20:26

Źródła i licencje · Redakcja lub tłumaczenie: DockRay. Zachowano prawa źródeł i obowiązujące licencje.

OSV / GitHub Advisory Database - GHSA-f2ph-cmg5-wxc8 - CC BY 4.0

Historia podatności: storybook

Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkich wpisów
3
Pierwsza → ostatnia
12.2025 10.2026
Bez poprawki
0
Wykorzystywana w atakach
0

Rozkład istotności

  • Krytyczna 1
  • Wysoka 2

Ujawnienia w latach

  1. 2025: 1
  2. 2026: 2
  1. Storybook: Brak weryfikacji pochodzenia w Storybook preview umożliwia wstrzyknięcie kodu przez złośliwe witryny ten wpis
    Krytyczna CVE-2026-114125 >= 8.0.0, < 8.6.19, >= 9.0.0, < 9.1.21, >= 10.0.0, < 10.6.2, >= 11.0.0-alpha.0, < 11.0.0-alpha.6 8.6.19, 9.1.21, 10.6.2, 11.0.0-alpha.6
  2. Wysoka CVE-2026-27148 >= 8.1.0, < 8.6.17, >= 8.7.0-alpha.0, < 9.1.19, >= 10.0.0-beta.0, < 10.2.10 8.6.17, 9.1.19, 10.2.10
  3. Wysoka · 7.3 CVE-2025-68429 >= 7.0.0, < 7.6.21, >= 8.0.0, < 8.6.15, >= 9.0.0, < 9.1.17, >= 10.0.0, < 10.1.10 7.6.21, 8.6.15, 9.1.17, 10.1.10

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.