
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
W platformie automatyzacji workflow n8n ujawniono poważną podatność typu sandbox escape, która umożliwia wyjście poza ograniczenia mechanizmu wykonywania wyrażeń. W praktyce oznacza to, że uwierzytelniony użytkownik posiadający uprawnienia do tworzenia lub modyfikacji workflow może doprowadzić do uruchamiania poleceń systemowych na serwerze, na którym działa instancja n8n.
To szczególnie istotny problem dla organizacji wykorzystujących n8n do integracji usług, automatyzacji procesów biznesowych i przechowywania poświadczeń do systemów zewnętrznych. Tego rodzaju luka nie ogranicza się bowiem wyłącznie do warstwy aplikacyjnej, ale może prowadzić do pełniejszej kompromitacji środowiska.
W skrócie
Podatność została opisana jako luka wysokiego ryzyka i powiązana z advisory GHSA-gv7g-jm28-cr3m. Problem dotyczy wersji starszych niż 2.31.5 oraz wersji 2.32.0, a poprawki zostały udostępnione w wydaniach 2.31.5 i 2.32.1.
- atak wymaga zalogowanego konta z możliwością edycji workflow,
- nie jest potrzebna dodatkowa interakcja innego użytkownika,
- możliwe jest wykonywanie poleceń systemowych z uprawnieniami procesu n8n,
- potencjalnym skutkiem jest dostęp do sekretów oraz dalszy ruch lateralny w infrastrukturze.
Kontekst / historia
n8n wykorzystuje system wyrażeń, który pozwala dynamicznie przetwarzać dane w ramach automatyzacji. Aby ograniczyć ryzyko nadużyć, wyrażenia mają być wykonywane w kontrolowanym środowisku odseparowanym od natywnych obiektów Node.js i systemu operacyjnego.
Nowo ujawniona luka wpisuje się jednak w szerszy problem bezpieczeństwa związany z obchodzeniem tego modelu izolacji. Badacze analizujący wcześniejszą poprawkę dla CVE-2026-27577 wykryli kolejny wariant obejścia zabezpieczeń. Z dostępnych informacji wynika, że problem zgłoszono w połowie lipca 2026 roku, a poprawione wersje opublikowano 22 lipca 2026 roku. Nie ma publicznego potwierdzenia aktywnego wykorzystywania błędu przed publikacją aktualizacji, ale jego charakter powoduje, że należy traktować go priorytetowo.
Analiza techniczna
Źródłem podatności jest sposób, w jaki n8n przepisuje i kontroluje identyfikatory wykorzystywane w wyrażeniach JavaScript. Mechanizm ten ma kierować odwołania do bezpiecznego kontekstu danych zamiast do rzeczywistego środowiska uruchomieniowego Node.js. W podatnej implementacji wystąpił jednak problem związany z obsługą funkcji strzałkowych, zwłaszcza ich skróconych ciał.
W rezultacie odpowiednio przygotowane wyrażenie mogło ominąć oczekiwane przepisywanie identyfikatorów i uzyskać dostęp do obiektu process. Następnie możliwe było odwołanie się do mechanizmów ładowania modułów wbudowanych Node.js. Opisywany scenariusz eksploatacji wykorzystywał również różnicę między statyczną kontrolą nazw właściwości a dynamicznym dostępem realizowanym przez Reflect.get(), co otwierało drogę do odzyskania dostępu do modułów takich jak child_process.
Z punktu widzenia obrony istotne jest to, że exploit nie wymaga phishingu, kliknięcia ani interakcji ze strony ofiary. Wystarczy konto z prawem tworzenia lub modyfikowania workflow. To sprawia, że ryzyko rośnie szczególnie w środowiskach współdzielonych, developerskich i testowych, gdzie szersza grupa użytkowników ma dostęp do edycji automatyzacji.
Konsekwencje / ryzyko
Najpoważniejszym skutkiem podatności jest zdalne wykonywanie poleceń na serwerze aplikacyjnym z uprawnieniami procesu n8n. Jeśli instancja ma połączenie z wewnętrznymi bazami danych, usługami chmurowymi, API lub magazynami sekretów, luka może stać się punktem wejścia do szerszej kompromitacji.
Dodatkowe zagrożenie wiąże się z możliwością pozyskania wartości N8N_ENCRYPTION_KEY, co potencjalnie umożliwia odszyfrowanie zapisanych poświadczeń. W praktyce incydent może więc prowadzić nie tylko do przejęcia samego hosta, ale także do utraty kontroli nad kontami usługowymi, integracjami i systemami backendowymi obsługiwanymi przez workflow.
- szczególnie zagrożone są środowiska przechowujące poświadczenia o szerokich uprawnieniach,
- ryzyko rośnie tam, gdzie możliwość edycji workflow ma wielu użytkowników,
- niebezpieczne są wdrożenia z bezpośrednim dostępem do sieci wewnętrznej,
- brak segmentacji i kontroli ruchu wychodzącego zwiększa potencjalne skutki ataku.
Rekomendacje
Najważniejszym działaniem jest natychmiastowa aktualizacja n8n do wersji 2.31.5, 2.32.1 lub nowszej. Ograniczenie dostępu do instancji i uprawnień edycji workflow może czasowo zmniejszyć ekspozycję, ale nie powinno być traktowane jako pełne rozwiązanie problemu.
- ograniczyć możliwość tworzenia i modyfikowania workflow wyłącznie do zaufanych administratorów,
- przeanalizować ostatnio zmieniane workflow pod kątem nietypowych funkcji strzałkowych, zaciemnionego JavaScript i podejrzanych wyrażeń,
- monitorować procesy potomne uruchamiane przez n8n lub Node.js, zwłaszcza powłoki systemowe, PowerShell,
curliwget, - sprawdzić logi hosta, kontenera i aplikacji pod kątem prób wykonywania komend systemowych,
- zrotować poświadczenia przechowywane w n8n, jeśli istnieje podejrzenie nieautoryzowanej eksploatacji,
- ograniczyć uprawnienia systemowe procesu n8n,
- odseparować instancję od wrażliwych segmentów sieci i wdrożyć kontrolę połączeń wychodzących.
W środowiskach o podwyższonym profilu ryzyka warto również przeprowadzić retrospective threat hunting obejmujący nietypowe modyfikacje workflow od lipca 2026 roku, uruchomienia procesów potomnych przez runtime Node.js, anomalie w dostępie do sekretów oraz nieoczekiwane połączenia zewnętrzne inicjowane z hosta n8n.
Podsumowanie
Nowa luka w n8n pokazuje, jak trudne pozostaje bezpieczne izolowanie dynamicznych wyrażeń JavaScript w aplikacjach automatyzacyjnych. Chociaż atak wymaga konta z uprawnieniami do edycji workflow, potencjalne skutki są bardzo poważne i mogą obejmować wykonanie poleceń na serwerze, przejęcie sekretów oraz dalszą kompromitację infrastruktury.
Organizacje korzystające z n8n powinny potraktować aktualizację jako działanie priorytetowe. Równolegle warto zweryfikować zakres uprawnień użytkowników, przeanalizować istniejące workflow i ocenić, na ile instancja jest odseparowana od krytycznych zasobów wewnętrznych.