Luka w zabezpieczeniach CVE-2026-25049 n8n
Niedawno ujawniona luka w zabezpieczeniach platformy automatyzacji przepływu pracy n8n umożliwia wykonywanie dowolnych poleceń systemowych w określonych warunkach. Luka jest śledzona jako CVE-2026-25049 i ma wynik CVSS 9,4, co odzwierciedla jej krytyczny poziom zagrożenia. W przypadku skutecznego wykorzystania luki, atakujący mogą wykonywać polecenia systemowe na serwerze hostującym n8n.
Spis treści
Ominięcie wcześniej załatanej luki w zabezpieczeniach
Luka CVE-2026-25049 wynika z niewystarczającej dezynfekcji, która omija zabezpieczenia wprowadzone w celu naprawy luki CVE-2025-68613 (CVSS 9.9), krytycznej luki w zabezpieczeniach załatanej w grudniu 2025 roku. Późniejsza analiza wykazała, że nowsza luka CVE jest w rzeczywistości obejściem pierwotnej poprawki, a nie zupełnie odrębnym problemem. Badacze wykazali, że obie luki umożliwiają atakującym ominięcie piaskownicy ekspresji n8n i obejście istniejących zabezpieczeń. Po wcześniejszym ujawnieniu, zidentyfikowano i usunięto również dodatkowe słabości w ocenie ekspresji.
Warunki wstępne ataku i mechanizmy eksploatacji
Lukę może wykorzystać każdy uwierzytelniony użytkownik z uprawnieniami do tworzenia lub modyfikowania przepływów pracy. Wstrzykując zmodyfikowane wyrażenia do parametrów przepływu pracy, możliwe jest wywołanie niezamierzonego wykonania polecenia systemowego. Szczególnie niebezpieczny scenariusz obejmuje utworzenie przepływu pracy, który ujawnia publicznie dostępny webhook bez uwierzytelnienia. Osadzenie pojedynczego wiersza kodu JavaScript za pomocą składni destrukturyzującej umożliwia atakującym wykonanie poleceń systemowych przez przepływ pracy. Po aktywacji takiego przepływu pracy dowolna osoba z zewnątrz może wywołać webhook i zdalnie wykonywać polecenia.
Poważność zagrożenia wzrasta jeszcze bardziej w połączeniu z funkcjonalnością webhooka n8n, która umożliwia publiczne ujawnienie złośliwych przepływów pracy. W takich przypadkach eksploatacja nie wymaga podwyższonych uprawnień poza tworzenie przepływów pracy, co podkreśla ryzyko podsumowane przez badaczy w następujący sposób: jeśli tworzenie przepływów pracy jest dozwolone, możliwe jest pełne przejęcie kontroli nad serwerem.
Przyczyna główna: Luki w egzekwowaniu typu i nadużycia w czasie wykonywania
Luka wynika z luk w mechanizmach oczyszczania n8n oraz fundamentalnej niezgodności między systemem typów w czasie kompilacji TypeScript a zachowaniem JavaScript w czasie wykonywania. Chociaż TypeScript wymusza ograniczenia typów podczas kompilacji, nie może zagwarantować ich przestrzegania w przypadku wartości kontrolowanych przez atakującego, wprowadzanych w czasie wykonywania. Dostarczając wartości inne niż ciągi znaków, takie jak obiekty lub tablice, atakujący mogą ominąć logikę oczyszczania, która zakłada, że dane wejściowe są wyłącznie ciągami znaków, skutecznie neutralizując krytyczne mechanizmy bezpieczeństwa.
Potencjalny wpływ na systemy i dane
Skuteczne wykorzystanie luk w zabezpieczeniach może doprowadzić do całkowitego przejęcia kontroli nad serwerem. Atakujący mogą wykraść dane uwierzytelniające, wykraść poufne dane, uzyskać dostęp do systemu plików i usług wewnętrznych, przełączyć się na połączone środowiska chmurowe i przejąć kontrolę nad przepływami pracy opartymi na sztucznej inteligencji. Możliwość instalowania trwałych backdoorów dodatkowo zwiększa ryzyko długotrwałego, ukrytego dostępu.
Wersje, których dotyczy problem i wskazówki dotyczące łagodzenia skutków
Luka dotyczy wersji n8n starszych niż wersje z poprawkami i została odkryta dzięki współpracy dziesięciu niezależnych badaczy bezpieczeństwa. Dotyczy ona następujących wersji, wraz z zalecanymi tymczasowymi środkami zaradczymi, gdy natychmiastowe zastosowanie poprawek nie jest możliwe:
Dotyczy wersji: n8n starszych niż 1.123.17 i 2.5.2, dla których wydano poprawki.
Zalecane środki zaradcze: ogranicz możliwość tworzenia i edytowania przepływów pracy do w pełni zaufanych użytkowników oraz wdróż n8n w zabezpieczonym środowisku z ograniczonymi uprawnieniami systemu operacyjnego i ograniczonym dostępem do sieci.
Ten problem podkreśla konieczność stosowania wielowarstwowych strategii walidacji. Gwarancje w czasie kompilacji muszą być uzupełnione o rygorystyczne kontrole w czasie wykonywania, szczególnie w przypadku obsługi niezaufanych danych wejściowych. Przeglądy kodu powinny koncentrować się na procedurach oczyszczania i unikać założeń dotyczących typów danych wejściowych, które nie są egzekwowane w czasie wykonywania.
Dodatkowe luki w zabezpieczeniach n8n o wysokim stopniu zagrożenia
Oprócz CVE-2026-25049, n8n opublikował ostrzeżenia dotyczące czterech dodatkowych luk w zabezpieczeniach, z których dwie zostały ocenione jako krytyczne:
CVE-2026-25053 (CVSS 9.4) : Wstrzyknięcie polecenia systemu operacyjnego do węzła Git, umożliwiające uwierzytelnionym użytkownikom z uprawnieniami przepływu pracy wykonywanie poleceń lub odczytywanie dowolnych plików; naprawiono w wersjach 2.5.0 i 1.123.10.
CVE-2026-25054 (CVSS 8.5) : Luka umożliwiająca wykonywanie skryptów międzywitrynowych w komponencie renderowania Markdown, umożliwiająca wykonywanie skryptów z uprawnieniami tego samego pochodzenia i potencjalne przejęcie konta; naprawiona w wersjach 2.2.1 i 1.123.9.
CVE-2026-25055 (CVSS 7.1) : Problem z przemierzaniem ścieżki w węźle SSH, który może prowadzić do zapisu plików w nieprzewidzianych lokalizacjach i możliwego zdalnego wykonania kodu w systemach docelowych; naprawiono w wersjach 2.4.0 i 1.123.12.
CVE-2026-25056 (CVSS 9.4) : Luka umożliwiająca zapis dowolnego pliku w trybie zapytania SQL węzła Merge, potencjalnie skutkująca zdalnym wykonaniem kodu; naprawiona w wersjach 2.4.0 i 1.118.0.
Pilna aktualizacja w celu zmniejszenia ryzyka
Biorąc pod uwagę skalę i powagę zidentyfikowanych luk, zdecydowanie zaleca się aktualizację wdrożeń n8n do najnowszych dostępnych wersji. Szybkie łatanie luk pozostaje najskuteczniejszą obroną przed wykorzystaniem luk i późniejszymi naruszeniami bezpieczeństwa.