Podejrzane okna logowania z Polyfill na stronach Toshiba i Muji. Analiza incydentu supply chain - Security Bez Tabu

Podejrzane okna logowania z Polyfill na stronach Toshiba i Muji. Analiza incydentu supply chain

Cybersecurity news

Wprowadzenie do problemu / definicja

Na stronach internetowych firm Toshiba i Muji pojawiły się podejrzane okna logowania wyświetlane użytkownikom podczas odwiedzania serwisów. Zdarzenie nie przypominało klasycznego włamania do aplikacji webowej, lecz wskazywało na problem wynikający z zależności od zewnętrznego zasobu JavaScript dostarczanego przez usługę Polyfill.

To istotny przykład ryzyka supply chain w warstwie front-endu. Nawet pomocniczy skrypt ładowany z zewnętrznej domeny może wpływać na bezpieczeństwo użytkowników końcowych, reputację marki i integralność doświadczenia w przeglądarce.

W skrócie

  • Problem dotyczył stron korzystających z zasobu hostowanego pod domeną polyfill.io.
  • Przeglądarki użytkowników otrzymywały odpowiedź HTTP 401, co wywoływało natywne okno uwierzytelnienia.
  • Toshiba i Muji ostrzegły użytkowników, aby nie podawali danych logowania.
  • Nie potwierdzono włamania do samych serwisów ani wycieku danych.
  • Incydent pokazuje, że skutki wcześniejszych kompromitacji zewnętrznych usług mogą utrzymywać się przez długi czas.

Kontekst / historia

Polyfill przez lata był popularnym mechanizmem zapewniającym kompatybilność nowoczesnych funkcji JavaScript ze starszymi przeglądarkami. Wiele organizacji korzystało z publicznego CDN zamiast utrzymywać bibliotekę lokalnie, co upraszczało wdrożenia, ale jednocześnie zwiększało zależność od zewnętrznego dostawcy.

Po wcześniejszych kontrowersjach związanych z domeną polyfill.io branża bezpieczeństwa szeroko zalecała usunięcie tej zależności z aplikacji internetowych. Obecny incydent sugeruje, że część organizacji mogła pozostawić odwołania do starej usługi w mniej widocznych elementach infrastruktury, takich jak archiwalne podstrony, szablony, systemy CMS, tag managery lub starsze komponenty front-endowe.

Analiza techniczna

Technicznie incydent jest interesujący, ponieważ nie polegał na osadzeniu klasycznego formularza phishingowego w kodzie HTML strony. Zamiast tego przeglądarka reagowała na odpowiedź HTTP 401 Unauthorized zwracaną przez zewnętrzny zasób. W praktyce taki status może uruchomić natywny mechanizm uwierzytelnienia przeglądarki i wyświetlić okno z prośbą o nazwę użytkownika oraz hasło.

Jeżeli strona nadal zawierała odwołanie do zasobu ładowanego z polyfill.io, a domena odpowiadała w sposób wymagający uwierzytelnienia, użytkownik widział systemowe lub przeglądarkowe okno logowania. Taki prompt może budzić większe zaufanie niż zwykły popup HTML, ponieważ często wygląda jak element natywny, a nie zawartość generowana przez witrynę.

Kluczowe jest to, że samo pojawienie się okna nie musi oznaczać kompromitacji serwera organizacji. W tym scenariuszu problem leży w łańcuchu dostaw aplikacji webowej: serwis importuje zewnętrzny zasób, a zachowanie tej domeny ulega zmianie. To wystarczy, aby użytkownik doświadczył potencjalnie niebezpiecznego komunikatu bez bezpośredniego włamania do aplikacji.

Dodatkowym wyzwaniem jest trwałość takich zależności. W dużych środowiskach firmowych skrypty zewnętrzne bywają osadzone w wielu repozytoriach, motywach, kampaniach marketingowych, mikroserwisach i historycznych sekcjach witryny. Dlatego pojedyncza poprawka nie zawsze oznacza pełną remediację.

Konsekwencje / ryzyko

Najważniejszym ryzykiem pozostaje możliwość wyłudzenia poświadczeń. Nawet jeśli nie ma potwierdzenia, że dane wpisane do takich okien zostały przechwycone, sam mechanizm tworzy warunki sprzyjające phishingowi. Użytkownik może uznać, że witryna wymaga dodatkowego logowania lub odnowienia sesji.

Drugim istotnym zagrożeniem jest szkoda reputacyjna. Dla odbiorcy końcowego nie ma większego znaczenia, czy źródłem problemu była sama aplikacja, czy zewnętrzny dostawca skryptu. To marka widoczna w pasku adresu odpowiada za doświadczenie użytkownika i ponosi konsekwencje utraty zaufania.

Trzecim ryzykiem jest niewidoczna ekspozycja operacyjna. Jeżeli nieaktualna zależność pozostała w kodzie produkcyjnym przez długi czas, może to wskazywać na brak pełnego inwentarza komponentów klientowych, niedostateczny monitoring zasobów third-party oraz słabe procesy bezpieczeństwa w obszarze front-endu.

Rekomendacje

Organizacje powinny całkowicie usunąć odwołania do polyfill.io oraz innych porzuconych, przejętych lub niezweryfikowanych zasobów zewnętrznych. Nie wystarczy wyłączenie ich w głównej aplikacji. Konieczny jest pełny przegląd starszych podstron, szablonów, kampanii, systemów CMS, narzędzi tagujących i wszystkich miejsc, w których mogły pozostać historyczne zależności.

  • prowadzić pełną inwentaryzację zewnętrznych skryptów ładowanych po stronie klienta,
  • ograniczać zależności third-party do niezbędnego minimum,
  • hostować krytyczne biblioteki lokalnie tam, gdzie jest to możliwe,
  • stosować polityki Content Security Policy ograniczające zaufane źródła skryptów,
  • wdrażać mechanizmy Subresource Integrity, jeśli model dostarczania zasobów na to pozwala,
  • monitorować odpowiedzi HTTP i anomalie w zachowaniu zewnętrznych domen,
  • cyklicznie skanować kod pod kątem martwych, przestarzałych i nieautoryzowanych zależności.

Z perspektywy zespołów SOC i blue teamów ważne jest także monitorowanie zgłoszeń użytkowników dotyczących nietypowych okien logowania, ostrzeżeń przeglądarki i nieoczekiwanych przekierowań. Takie sygnały mogą wskazywać na problem supply chain zanim zostanie on wykryty przez standardowe narzędzia bezpieczeństwa aplikacyjnego.

Użytkownikom końcowym należy rekomendować, aby nie wpisywali haseł w niespodziewane okna uwierzytelnienia pojawiające się podczas przeglądania stron. W razie wątpliwości bezpieczniej jest zamknąć komunikat i zalogować się wyłącznie przez znany formularz dostępny bezpośrednio w serwisie.

Podsumowanie

Incydent na stronach Toshiba i Muji pokazuje, że zagrożenia supply chain w JavaScript nie kończą się wraz z pierwszym nagłośnieniem problemu. Skutki wcześniejszych kompromitacji mogą powracać, jeśli historyczne zależności pozostają w kodzie produkcyjnym, szablonach lub zasobach pomocniczych.

Choć nie potwierdzono przejęcia samych serwisów ani wycieku danych, sam mechanizm generowania natywnych okien logowania tworzy realne ryzyko phishingu i nadużyć. To ważne przypomnienie, że bezpieczeństwo front-endu wymaga nie tylko aktualizacji bibliotek, ale również pełnej kontroli nad zewnętrznymi zasobami i ich cyklem życia.

Źródła

  1. https://www.bleepingcomputer.com/news/security/suspicious-polyfill-login-prompts-pop-up-on-toshiba-muji-websites/
  2. https://www.global.toshiba/ww/news/corporate/2026/06/news-20260605-01.html
  3. https://www.muji.com/jp/ja/notice/2026_0604_01
  4. https://blog.cloudflare.com/automatically-replacing-polyfill-io-links-with-cloudflares-mirror-for-a-safer-internet/
  5. https://sansec.io/research/polyfill-supply-chain-attack