SOC Prime Bias: High

26 Oct 2026 16:41 UTC

CVE-2026-111497: Krytyczna luka Node2Shell w dekoderze Brotli Node.js

Author Photo
SOC Prime Team linkedin icon Śledź
CVE-2026-111497: Krytyczna luka Node2Shell w dekoderze Brotli Node.js
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Podsumowanie

Node2Shell to krytyczna luka (CVE-2026-111497) w dekoderze Brotli zawartym w Node.js, spowodowana przez zapisywanie poza wyznaczone granice pamięci. Atakujący mogą wykorzystać ten błąd poprzez dostarczanie złośliwie zmodyfikowanych strumieni skompresowanych do usług przetwarzających dane Brotli, co potencjalnie może prowadzić do odmowy usługi, ujawnienia pamięci lub zdalnego wykonania kodu. Szczególne zagrożenie stanowi dla usług używających Express 5 lub middleware automatycznie dekompresującego Brotli.

Śledztwo

Zespół Sysdig Threat Research przeanalizował tę lukę i zgłosił, że publiczny PoC pojawił się w ciągu kilku godzin od wydania łaty. Badania Impervy i Vercel wykazały, że wykonywanie kodu jest możliwe na określonych architekturach, w tym Linux arm64. Śledztwo wykazało, że możliwość eksploatacji zależy od tego, czy aplikacja lub jej biblioteki, takie jak body-parser, przetwarzają strumienie Brotli kontrolowane przez atakującego.

Łagodzenie

Głównym sposobem łagodzenia jest aktualizacja Node.js do wersji 22.23.4, 24.22.1 lub 26.12.1 oraz aktualizacja Bun do wersji 1.4.4 lub nowszej. Organizacje powinny również wyłączyć dekompresję żądań, gdzie to możliwe, w tym ustawienie inflate: false w body-parser. Wdrożenie zasad WAF do odrzucania nieufnych Content-Encoding: br żądań i uruchamianie usług na nieuprzywilejowanych kontach zapewnia dodatkowe warstwy obronne.

Reakcja

Jeśli zostanie wykryty potencjalny łańcuch eksploatacji, na przykład awaria procesu Node.js, a następnie nieoczekiwane wykonanie programu, zespoły bezpieczeństwa powinny natychmiast odizolować dotknięte obciążenie. Monitoruj działania po eksploatacji, w tym interaktywne powłoki, nieautoryzowane pobieranie złośliwego oprogramowania, kryptowalutę lub kradzież tajemnic i tokenów chmurowych. Łatanie wszystkich dostępnych podatnych usług powinno pozostać najwyższym priorytetem.

Przebieg ataku

Nadal aktualizujemy tę część.

Wykrycia

Podejrzane procesy dziecięce NodeJS [Windows] (poprzez cmdline)

Zespół SOC Prime
25 października 2026

Podejrzana powłoka przez serwer WWW [Linux] (poprzez process_creation)

Zespół SOC Prime
25 października 2026

Podejrzane procesy dziecięce NodeJS [Linux] (poprzez cmdline)

Zespół SOC Prime
25 października 2026

Wykrycie awarii procesu Node.js, a następnie wykonania programu na miejscu – Eksploatacja Node2Shell [Tworzenie procesu w systemie Linux]

Zasady AI zespołu SOC Prime
25 października 2026

Wykonanie symulacji

  • Narracja ataku i komendy: Przeciwnik celuje w aplikację webową działającą na Node.js. Wysyłają złośliwy ładunek skompresowany Brotli, który wywołuje błąd naruszenia pamięci, powodując awarię procesu node . Bezpośrednio po awarii atakujący wykorzystuje przejęty przepływ wykonania do uruchomienia /bin/bash powłoki w celu ustanowienia trwałości i rozpoczęcia lokalnego rozpoznania. Ta sekwencja node wydarzeń poprzedzona /bin/bash wykonaniem ma na celu dopasowanie do selection_crash and selection_suspicious_exec logiki reguły wykrycia.

  • Skrypt testu regresji:

    #!/bin/bash
    # Symulacja wzorca eksploatacji w stylu Node2Shell
    
    echo "[+] Rozpoczęcie symulacji Node2Shell..."
    
    # 1. Symuluj proces Node.js, który 'zawiesza się' lub jest nagle zakończony
    # W rzeczywistej sytuacji jest to awaria. Tutaj symulujemy telemetrię 
    # wywoływanego/przetwarzanego procesu node.
    node -e "process.exit(1)"
    echo "[+] Proces Node.js 'zawiesił się' (Kod wyjścia 1)."
    
    # 2. Symuluj natychmiastowe wykonanie podejrzanej powłoki
    # To naśladuje ładunek wywołujący powłokę po awarii.
    /bin/bash -c "echo 'Eksploatacja zakończona pomyślnie: Wystartowała powłoka'"
    
    echo "[+] Symulacja zakończona. Sprawdź wykrycie w SIEM."
  • Komendy do czyszczenia:

    # Podczas tej symulacji nie utworzono żadnych trwałych plików.
    # Wystarczy upewnić się, że nie działają żadne nielegalne procesy bash.
    pkill -f "Eksploatacja zakończona pomyślnie"