Dlaczego powiadomienia push mogą zamienić się w ciche wektory ataku

Dlaczego powiadomienia push mogą zamienić się w ciche wektory ataku

Maj 18, 2026 web-security service-workers push-notifications vulnerability api-security web-platform browser-security exploitation

Cicha luka, o której mało kto wie

Web Push to dziś standard w aplikacjach webowych. Używa się go do powiadomień o nowych wiadomościach, alertach systemowych czy aktualizacjach. Ale co się stanie, gdy mechanizm stworzony po to, żeby informować użytkowników, stanie się kanałem do cichych i długotrwałych ataków?

Mowa o luce nazywanej Sleeping Agent. Wykorzystuje ona lukę w sposobie, w jaki przeglądarki sprawdzają, czy powiadomienie naprawdę zostało pokazane użytkownikowi.

Jak działa atak

Web Push API wymaga, żeby każde powiadomienie było widoczne dla użytkownika. W tym celu deweloperzy muszą ustawić flagę userVisibleOnly: true. To miało być zabezpieczenie przed nadużyciami.

W praktyce jednak wygląda to inaczej.

Złośliwy Service Worker po otrzymaniu pusha wywołuje dwie metody jedna po drugiej:

  • showNotification() – wyświetla powiadomienie
  • notification.close() – natychmiast je zamyka

Powiadomienie trafia do bazy przeglądarki na ułamek sekundy i znika, zanim użytkownik zdąży je zauważyć. Gdy przeglądarka sprawdza, czy wymaganie userVisibleOnly zostało spełnione, patrzy nie na to, co aktualnie widzi użytkownik,而是 na rekordy w bazie danych. To wystarczy, żeby atak się udał.

Dlaczego to ma znaczenie

Sleeping Agent pozwala na utrzymanie stałego, niewidocznego połączenia między przeglądarką a serwerem atakującego. Nie trzeba instalować żadnego programu. Wystarczy, że użytkownik wejdzie raz na zainfekowaną stronę.

Ta luka wpływa na:

  • Bezpieczeństwo – ukryte kanały komunikacyjne bez wiedzy użytkownika
  • Zgodność z regulacjami – wiele standardów zakłada, że powiadomienia są zawsze widoczne
  • Różne przeglądarki – problem dotyczy Chrome, Edge i starszych wersji Safari
  • Łatwość wykorzystania – atak da się przeprowadzić w kilka minut

Jak wygląda technicznie

Problem wynika z tego, że przeglądarka sprawdza spełnienie warunków bezpieczeństwa po zakończeniu działania Service Workera. Gdy zdarignie push arrives, worker szybko pokazuje i zamyk

Wystarczy więc, że w tym krótkim oknie między pokazaniem i zamknięciem powiadomienia przeglądarka zapisuje fakt jego istnienia w bazie,而不去 sprawdza, czy nadal jest widoczne na ekranie.

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT NB NL HU IT FR ES DE DA ZH-HANS EN