Wojciech Ciemski, Autor w serwisie Security Bez Tabu - Strona 433 z 478

Krytyczna luka „authentication bypass” w routerach ASUS DSL (CVE-2025-59367) — co musisz zrobić teraz

Wprowadzenie / definicja luki

ASUS potwierdził krytyczną podatność typu authentication bypass w wybranych modelach routerów z serii DSL. Luka CVE-2025-59367 pozwala zdalnemu, nieautoryzowanemu napastnikowi zalogować się do urządzenia bez podawania poprawnych poświadczeń — atak jest niskozłożony i nie wymaga interakcji użytkownika. Producent wydał firmware naprawczy 1.1.2.3_1010 m.in. dla DSL-AC51, DSL-N16 oraz DSL-AC750.

W skrócie (TL;DR)

  • CVE-2025-59367: krytyczny bypass autoryzacji w routerach ASUS DSL.
  • Modele: m.in. DSL-AC51, DSL-N16, DSL-AC750 (lista może być szersza; sprawdź stronę wsparcia swojego modelu).
  • Fix: zainstaluj firmware 1.1.2.3_1010 (jeśli dostępny dla Twojego modelu).
  • Jeśli nie możesz zaktualizować (EOL): wyłącz wszystkie usługi wystawione do Internetu (WAN admin, port forwarding, DDNS, VPN server, DMZ, port triggering, FTP) i wzmocnij hasła.

Kontekst / historia / powiązania

Routery SOHO są regularnie wykorzystywane do budowy botnetów DDoS. W 2025 r. CISA i badacze sygnalizowali kampanie przejmowania urządzeń ASUS przez zaawansowanych przeciwników (np. do tworzenia nowych botnetów), co podnosi ryzyko szybkiej weaponizacji świeżych luk. Dodatkowo w kwietniu 2025 ASUS łatał niezależną, krytyczną podatność w AiCloud (CVE-2025-2492), również umożliwiającą obejście autoryzacji.

Analiza techniczna / szczegóły luki

  • Identyfikator: CVE-2025-59367; klasyfikowana jako Authentication Bypass (CWE-288).
  • Skutek: zdalny dostęp do panelu administracyjnego bez ważnych poświadczeń → możliwość zmiany konfiguracji, wgrania własnych reguł, przekierowań portów, aktualizacji złośliwym firmware, a w efekcie pełnego przejęcia ruchu.
  • Złożoność: niska; brak interakcji użytkownika.
  • Modele/wersje: ASUS potwierdził problem w serii DSL; dla DSL-AC51/DSL-N16/DSL-AC750 dostępny jest firmware 1.1.2.3_1010. W innych modelach status zależy od strony wsparcia danego produktu.

Uwaga: Oficjalna karta CVE (NVD/CVE.org) wskazuje na sekcję „Security Update for DSL Series Router” w advisory ASUS jako źródło — warto weryfikować status konkretnego modelu w jego karcie wsparcia.

Praktyczne konsekwencje / ryzyko

  • Przejęcie urządzenia brzegowego: atakujący może skonfigurować proxy, przekierowania (port forwarding/DMZ), a nawet dodać złośliwe certyfikaty.
  • Podsłuch/mitm w sieci LAN/WLAN (kontrola DNS, statyczne trasy, reguły NAT).
  • Wpięcie do botnetu i wykorzystanie do wolumetrycznych DDoS lub pivotu do środowiska firmowego.
  • Utrudniona detekcja: wiele ataków na routery pozostaje niewidocznych w EDR/SIEM, bo urządzenia są poza zakresem telemetrii endpointowej.
    Te wektory są zgodne z dotychczasowymi nadużyciami błędów w routerach ASUS raportowanymi w 2025 r.

Rekomendacje operacyjne (co zrobić teraz)

1) Patch management

  • Wejdź na stronę wsparcia swojego modelu (np. DSL-AC51), pobierz najnowszy firmware (1.1.2.3_1010 jeśli wskazany dla modelu), zweryfikuj sumę i zaktualizuj przez panel Administration → Firmware Upgrade.

2) Natychmiastowe twardnienie (także dla EOL)

  • Wyłącz ekspozycję do Internetu (WAN): Remote Access from WAN, Administration over WAN, Port Forwarding, DDNS, VPN Server, DMZ, Port Triggering, FTP.
  • Ustaw silne, unikalne hasła dla admina i Wi-Fi, nie używaj ponownie poświadczeń.
  • Regularnie sprawdzaj dostępność nowych firmware’ów.

3) Szybkie testy bezpieczeństwa (z hosta w tej samej sieci i z zewnątrz)

# Z LAN: sprawdź czy panel nie jest przywiązany do 0.0.0.0/wan
nmap -p 80,443,22,21,8080,8443 192.168.1.1 -sV --script http-auth,ssl-cert

# Z zewnątrz (na VPS): upewnij się, że WAN nie wystawia panelu
nmap -Pn -p 80,443,8080,8443 <twoje_publiczne_IP> --reason

# Test podstawowej ochrony HTTP na panelu
curl -I http://192.168.1.1/ | sed -n '1,10p'

4) Monitorowanie i forensyka sieci domowej/małej firmy

  • Przejrzyj logi routera (szczególnie logowania, zmiany konfiguracji, nowe reguły NAT/port forwarding).
  • Zweryfikuj DNS (czy nie zmieniono na obce serwery), listę UPnP i DDNS.
  • Rozważ reset do fabrycznych + wgranie najnowszego firmware od razu po reboocie.

5) Segmentacja

  • Oddziel IoT/Wi-Fi gościnne od sieci produkcyjnej (VLAN/oddzielny SSID).
  • Zablokuj dostęp z VLAN IoT do panelu admina routera (ACL).

6) Polityka dla urządzeń EOL

  • Jeśli Twój model jest EOL i nie otrzyma poprawki — pozostaw go bez usług WAN lub wymień na wspierany. Rekomendowane przez ASUS kroki (wyłączenie usług WAN + mocne hasła) traktuj jako tymczasowe.

Różnice / porównania z innymi przypadkami (AiCloud — CVE-2025-2492)

  • CVE-2025-59367 (ten przypadek): dotyczy serii DSL; bypass autoryzacji prowadzący do nieuprawnionego dostępu do urządzenia.
  • CVE-2025-2492 (kwiecień 2025): dotyczył funkcji AiCloud w szerszym zakresie modeli; również umożliwiał obejście autoryzacji i wykonywanie funkcji bez uprawnień. W obu przypadkach ryzyko przejęcia admina jest wysokie, ale zakres modeli/feature jest inny, a więc i ścieżki detekcji/mitigacji mogą się różnić (np. wyłączenie AiCloud vs. wyłączenie usług WAN).

Podsumowanie / kluczowe wnioski

  • Luka CVE-2025-59367 jest krytyczna i prosta w nadużyciu — aktualizacja firmware to priorytet.
  • Jeżeli nie możesz zaktualizować (EOL), odetnij usługi WAN i twardnij konfigurację — traktuj to jako most do wymiany sprzętu.
  • Utrzymuj higienę routera: aktualizacje, brak zdalnego admina z Internetu, segmentacja, silne hasła i monitoring konfiguracji.

Źródła / bibliografia

  1. BleepingComputer — ogłoszenie o luce, modele, rekomendacje i firmware 1.1.2.3_1010. (BleepingComputer)
  2. NVD (CVE-2025-59367) — wpis CVE, klasyfikacja i odnośnik do advisory ASUS. (NVD)
  3. CVE.org (CVE-2025-59367) — rejestr CVE zarządzany przez CNA ASUS. (cve.org)
  4. Strona wsparcia modelu DSL-AC51 (lista zmian firmware). (ASUS)
  5. NVD (CVE-2025-2492) — kontekst historyczny (AiCloud, kwiecień 2025). (NVD)

OWASP Top 10 2025 – Kluczowe Zagrożenia I Porady Bezpieczeństwa

OWASP Top 10 w praktyce: krótki kontekst zanim przejdziemy dalej

OWASP Top 10 to globalny standard opisujący 10 najpoważniejszych ryzyk bezpieczeństwa aplikacji webowych. Najnowsza edycja – OWASP Top 10 2025 – została właśnie opublikowana (po raz ósmy, poprzednio w 2021 roku) i przynosi ważne zmiany. Dla studentów i początkujących specjalistów cyberbezpieczeństwa znajomość tej listy jest kluczowa.

Czytaj dalej „OWASP Top 10 2025 – Kluczowe Zagrożenia I Porady Bezpieczeństwa”

Krytyczna luka w WatchGuard Firebox (CVE-2025-9242) jest aktywnie wykorzystywana. Jak się bronić?

Wprowadzenie do problemu / definicja luki

W urządzeniach WatchGuard Firebox (system Fireware OS) wykryto lukę CVE-2025-9242 o krytycznym poziomie ryzyka (CVSS 9.3), która umożliwia zdalne wykonanie kodu bez uwierzytelnienia poprzez błąd out-of-bounds write w procesie iked (obsługa IKEv2/IPsec dla Mobile User VPN i Branch Office VPN). CISA dodała już podatność do katalogu Known Exploited Vulnerabilities (KEV) na podstawie dowodów aktywnego wykorzystywania w atakach.


W skrócie

  • Co: Out-of-bounds write w iked (IKEv2), prowadzący do RCE bez uwierzytelniania.
  • Kogo dotyczy: Fireware OS 11.10.2–11.12.4_U1, 12.0–12.11.3, 2025.1 (różne modele Firebox). Naprawione w 2025.1.1, 12.11.4, 12.5.13 (T15/T35), 12.3.1_Update3 (B722811); gałąź 11.x – EoL.
  • Wejście atakującego: Ruch IKEv2 z Internetu na UDP/500 i UDP/4500 (NAT-T).
  • Status: Aktywnie wykorzystywana; CISA/KEV wymaga szybkiej aktualizacji.
  • Ekspozycja: Shadowserver raportował >73k niezałatanych Fireboxów widocznych w Internecie w październiku.

Kontekst / historia / powiązania

WatchGuard opublikował poradnik PSIRT 17 września 2025 r., a 21 października 2025 r. zaktualizował go o wskaźniki ataku (IoA) i zalecenie rotacji lokalnie przechowywanych sekretów (np. hasła, pre-shared keys) „z ostrożności”, po sygnałach o realnych próbach eksploatacji. 13 listopada 2025 r. dołączenie do CISA KEV potwierdziło etap aktywnego nadużycia.

Równolegle watchTowr opublikował techniczną analizę i reprodukcję błędu, ułatwiającą zrozumienie prymitywu pamięci, który stoi za RCE.


Analiza techniczna / szczegóły luki

Wejście: komunikaty IKE_AUTH w trakcie zestawiania IKEv2. Błąd out-of-bounds write w implementacji iked można wywołać manipulując polami ładunku IDi (identyfikator inicjatora) – udokumentowanym wskaźnikiem podejścia jest nienaturalnie duży rozmiar IDi (>100 bajtów) w logach diagnostycznych. Udana eksploatacja może spowodować zawieszenie lub crash procesu iked, a w wektorze RCE – wykonanie kodu w kontekście urządzenia.

Warunek konfiguracji: Podatność dotyczy Mobile User VPN (IKEv2) i BOVPN (IKEv2) z dynamicznym peerem. Co istotne, nawet po usunięciu takich konfiguracji urządzenie może pozostać podatne, jeśli nadal istnieje BOVPN do statycznego peera.

Zakres wersji i poprawki: jw. (sekcja „W skrócie”). Gałąź 11.x jest EoL – brak poprawek producenta.

Dowody wykorzystania: wpis w CISA KEV oraz doniesienia branżowe; SecurityWeek wskazuje na decyzję CISA nakazującą pilną aktualizację w instytucjach federalnych (BOD 22-01).


Praktyczne konsekwencje / ryzyko

  • Przejęcie perymetru: RCE na firewallu = pełna kontrola nad ruchem, podsłuch/mitm, pivot do sieci wewnętrznej.
  • Wyłączenie VPN / zakłócenia: zawieszanie/crash iked przerywa tunele BOVPN i dostęp zdalny.
  • Masowa skala ataku: dziesiątki tysięcy urządzeń w Internecie, atrakcyjny cel dla ransomware/APT (brak uwierzytelnienia, stałe UDP).

Rekomendacje operacyjne / co zrobić teraz

0) Priorytet i okno serwisowe
Traktuj jako P1. Zaplanuj szybkie prace: upgrade + rotacja sekretów.

1) Szybka inwentaryzacja i wykrywanie

  • Zidentyfikuj wszystkie Fireboxy z interfejsem WAN mającym UDP/500 i UDP/4500 otwarte do Internetu.
  • Sprawdź wersję Fireware OS i konfigurację VPN (czy używasz IKEv2 oraz dynamic peers).
  • Przejrzyj logi iked pod kątem IoA od WatchGuard: „IKE_AUTH request … IDi(sz=…>100)”, zawieszenia lub crashe iked. (Włącz poziom Info dla diagnostyki iked, jeśli to konieczne).

Przykładowe zapytania (do szybkiego łapania IoA w SIEM):

  • Syslog / Splunk index=network_logs sourcetype=watchguard:iked "IKE_AUTH request" IDi(sz=* | rex "IDi\\(sz=(?<idi>\d+)\\)" | where tonumber(idi) > 100
  • Elastic (KQL) message : "*IKE_AUTH request*" and message : "*IDi(sz=*"
  • tcpdump – szybka inspekcja IKEv2 (porty i długości) Uwaga: rozmiary payloadów IKEv2 nie są „z pudełka” parsowane; użyj do triage’u i korelacji z logami. tcpdump -ni any udp port 500 or udp port 4500

2) Aktualizacja (remediacja właściwa)

  • Zaktualizuj do 2025.1.1 / 12.11.4 / 12.5.13 / 12.3.1_Update3 zgodnie z tabelą WatchGuard PSIRT. Dla 11.x – wymiana/upgrade platformy (EoL, brak łat). Po aktualizacji zrestartuj i zweryfikuj wersję.

3) Rotacja sekretów (po aktualizacji)

  • WatchGuard zaleca rotację wszystkich lokalnie przechowywanych sekretów (hasła, PSK, klucze) „z ostrożności”. Zacznij od PSK dla BOVPN/MUVPN oraz haseł administratorów.

4) Dodatkowe twardnienie i ograniczenie powierzchni ataku

  • Dostęp IKEv2 tylko z zaufanych adresów (listy peerów/ACL na brzegowym FW/WAF, o ile architektura pozwala).
  • Rate-limit dla UDP/500, 4500 na zewnętrznych interfejsach (nftables/iptables) – utrudnia bruteforce i rozpoznanie: # nftables – ratelimiting IKEv2 (przykład) nft add table inet edge nft add chain inet edge input { type filter hook input priority 0 \; } nft add rule inet edge input udp dport {500,4500} ct state new limit rate 20/second accept nft add rule inet edge input udp dport {500,4500} drop
  • Monitoring integralności i wysoki poziom logowania iked przynajmniej tymczasowo.

5) Doraźne obejścia (gdy nie możesz od razu patchować)

  • Jeśli używasz wyłącznie BOVPN do statycznych peerów, zastosuj wytyczne producenta dot. „Secure Access to BOVPN IKEv2” jako tymczasowe ograniczenie ryzyka. (Nie zastępuje aktualizacji!)

6) Wykrywanie w sieci (IDS/IPS) – przykładowa reguła Suricata

Heurystyka: nieproporcjonalnie duże IDi w IKE_AUTH. Reguła orientacyjna – wymaga testów i dostrojenia w danym środowisku.

alert udp any any -> $HOME_NET [500,4500] (
  msg:"IKEv2 anomaly: oversized IDi in IKE_AUTH (WatchGuard CVE-2025-9242 heuristic)";
  flow:to_server;
  dsize:>600;               # heurystyczny próg długości pakietu
  content:"|2f|"; offset:0; depth:1;  # IKEv2 major/minor wersja w pierwszym bajcie: 0x2F (IKE_SA?); DEMO
  classtype:attempted-admin; sid:25259242; rev:1;
)

(IKEv2 nie ma banalnego „sygnaturowego” pola dla IDi bez pełnego parsowania – potraktuj to jako punkt startowy do własnej inspekcji).

7) Skany zewnętrzne / wykrywacze

  • Zespół watchTowr udostępnił skrypt pomocniczy do weryfikacji podatności (detekcja warunku wersji/konfiguracji) – używaj wyłącznie we własnej infrastrukturze.

Różnice / porównania z innymi przypadkami (jeśli dotyczy)

  • Charakter wektora: podobnie jak dawne łańcuchy RCE w Fortinet/Citrix, tutaj także mamy unauthenticated edge RCE na urządzeniu brzegowym. Różnica: specyfika IKEv2 i prymityw pamięci w iked.
  • Stan publicznych PoC: w chwili pisania brak szeroko dostępnego, w pełni działającego PoC RCE; istnieją analizy i reprodukcje badaczy (watchTowr), a CISA raportuje realne wykorzystanie. To klasyczny etap „patch now, ask later”.

Podsumowanie / kluczowe wnioski

  1. CVE-2025-9242 to krytyczna luka RCE w WatchGuard Firebox/Fireware OS w komponencie IKEv2 (iked).
  2. Jest aktywnie wykorzystywana; CISA wpisała ją do KEV – traktuj jako incydent prewencyjny o najwyższym priorytecie.
  3. Aktualizuj do wersji naprawionych i rotuj sekrety; dla EoL 11.x – zaplanuj wymianę.
  4. Zastosuj dodatkowe kontrole (ACL/ratelimity/monitoring IoA) do czasu pełnego wdrożenia poprawek.
  5. Weryfikuj logi iked pod kątem anomalii (duży IDi) oraz stabilność procesu – to praktyczne IoA od producenta.

Źródła / bibliografia

  1. WatchGuard PSIRT – „WatchGuard Firebox iked Out of Bounds Write Vulnerability (WGSA-2025-00015)” – zakres wersji, IoA, zalecenia (akt. 7 XI i 21 X 2025). (watchguard.com)
  2. CISA – Alert/KEV: dodanie CVE-2025-9242 jako aktywnie wykorzystywanej (13 XI 2025). (CISA)
  3. SecurityWeek – „Critical WatchGuard Firebox Vulnerability Exploited in Attacks” (13 XI 2025). (SecurityWeek)
  4. Shadowserver – obserwacje skali ekspozycji (73k+ niezałatanych Fireboxów). (SecurityWeek)
  5. watchTowr labs – analiza techniczna i reprodukcja błędu IKEv2/iked. (watchTowr Labs)

„IndonesianFoods”: dziesiątki tysięcy złośliwych paczek na npm z samoreplikującym się „robakiem” (Big Red)

Wprowadzenie do problemu / definicja zjawiska

Badacze bezpieczeństwa odkryli szeroko zakrojoną kampanię spamowo-szkodliwą w ekosystemie npm, w której opublikowano dziesiątki tysięcy paczek zawierających samoreplikujący się kod („robaka”), masowo generujący i publikujący nowe, losowo nazwane pakiety. Incydent jest przypisywany operatorowi posługującemu się językiem indonezyjskim i bywa określany jako „IndonesianFoods” lub „Big Red”. Celem nie jest klasyczne wykradanie sekretów, lecz zalew rejestru tysiącami artefaktów i nadużycie infrastruktury (w tym możliwa monetyzacja przez ekosystem tea.xyz).


W skrócie

  • Skala: od ~44–80 tys. i więcej złośliwych paczek, wykrytych na dziesiątkach kont npm. Nazwy generowane z list słów (przymiotniki/zwierzęta/kolory) oraz słowników z indonezyjskimi imionami i potrawami.
  • Mechanizm: prosty skrypt (Node.js) modyfikuje package.json/package-lock.json, usuwa private: true, nadaje losową wersję i publikuje kolejne paczki w pętli (co kilka sekund).
  • Wektory nadużycia: ponowne użycie zapisanych poświadczeń npm ofiary; możliwy cel: nagrody/„reputa­cja” w tea.xyz, SEO/pozycjonowanie lub „próba generalna” przed realnym ładunkiem.
  • Ryzyko: zanieczyszczenie wyników wyszukiwania, wzrost prawdopodobieństwa przypadkowej instalacji i zatrucie łańcucha dostaw (w CI/CD).

Kontekst / historia / powiązania

Kampania trwa co najmniej od 2023/2024 r., ewoluując od zwykłego spamu do robakopodobnej automatyzacji w 2025 r. (auto-publikacja i szybkie replikowanie). Część obserwacji wiąże aktywność z mechanizmami punktacji/nagród tea.xyz, co tłumaczy presję na masę i widoczność. Niezależne raporty (SecurityWeek, SourceCodeRed, JFrog) różnią się liczbami (43–80 tys.+), ale są spójne co do automatycznej pętli publikacji i słowników nazw. Dodatkowe doniesienia prasowe wskazują na 67–100 tys. paczek w miarę trwania sprzątania i nowej publikacji.


Analiza techniczna / szczegóły

1) Generowanie metadanych i nazwy

  • Warianty wykorzystują m.in. bibliotekę unique-names-generator oraz własne słowniki (imiona/potrawy/adjektywy/zwierzęta/kolory), np. annoyed_raccoon_z3n albo indah-ketoprak73-riris.

2) „Odblokowanie” publikacji

  • Skrypt usuwa pole private: true z package.json, aby erzac-projekt Next.js stał się publicznie publikowalny: let packageData = JSON.parse(fs.readFileSync("package.json")); if (packageData.private === true) { delete packageData.private; } // wersja i nazwa nadawane losowo… exec("npm publish --access public", cb); (fragmenty logiczne opisane w analizie JFrog).

3) Samoreplikacja i tempo

  • Po publikacji skrypt czeka losowy krótki czas i uruchamia cykl od nowa. W praktyce nowe paczki pojawiają się co ~7 sekund, aż do limitów lub błędów 429 (rate-limit).

4) Poświadczenia npm

  • Pętla używa zapisanych tokenów/npmrc użytkownika (prawdopodobnie na zainfekowanej maszynie) do publikacji pod jego kontem. To nie jest „kradzież sekretów na zewnątrz”, tylko nadużycie już obecnych uprawnień.

5) IoC i artefakty

  • JFrog publikuje sumy SHA-256 plików autopublikujących i listę obserwowanych kont npm; pojawiają się też adresy powiązane z tea.xyz w plikach konfiguracyjnych (tea.yaml). Warto wzbogacić skanery o te artefakty.

Praktyczne konsekwencje / ryzyko

  • Zatrucie łańcucha dostaw (SDLC/CI/CD): łatwiej o pomyłkową instalację paczki „o normalnym wyglądzie”, szczególnie przy luźnych constraintach wersji (^, ~) i braku blokad wersji.
  • Noise & discovery risk: zespoły SCA/SAST/DevSecOps dostają tysiące „śmieciowych” trafień, co utrudnia triage i może ukryć prawdziwe ataki.
  • Eskalacja scenariusza: ta sama infrastruktura może być „przełączona” na realny ładunek (np. infostealer, crypto-theft), a nie jedynie spam—JFrog wskazuje taki wariant jako prawdopodobny „dry run”.

Rekomendacje operacyjne / co zrobić teraz

Poniżej zestaw działań do wdrożenia od razu, od punktów krytycznych po „twardnienie” procesu.

A. Reagowanie i hunting

  1. Zablokuj i odśwież tokeny npm (szczególnie na maszynach buildowych):
# pokaż aktualne tokeny
npm token list
# unieważnij podejrzany token (wstaw ID)
npm token revoke <token-id>
# wymuś 2FA dla publikacji
npm profile enable-2fa auth-and-writes
  1. Przegląd ostatnich publikacji pod Twoją nazwą/npm org (czy „ktoś” nie publikował śmieci w Twoim imieniu):
# szybki podgląd zmian w Twojej organizacji przez API npm
curl -s "https://registry.npmjs.org/-/org/<twoja-org>/package?format=json" | jq '.'
  1. Skanuj lockfile i node_modules pod wzorce nazw ze słowników (adjectives/animals/colors, indonezyjskie imiona/potrawy) i znane IoC (hash’e z raportu JFrog). Przykładowy skrypt huntujący w repo:
# szukaj podejrzanych nazw w package-lock.json / pnpm-lock.yaml / yarn.lock
grep -E -i "(rendang|ketoprak|sambel|nasi|goreng|_z3n|meadowlark|raccoon)" \
  package-lock.json pnpm-lock.yaml yarn.lock 2>/dev/null

# weryfikuj SHA plików autopublikujących, jeśli występują
shasum -a 256 **/auto.js **/publishScript.js **/index.js 2>/dev/null

(doposaż bazę IoC o hash’e i konta z raportu JFrog).

  1. Wymuś „allow-listy” w prywatnym mirrorze/proxy rejestru (Artifactory/Nexus/JFrog/Frog Curation, Sonatype Firewall): odrzuć publikacje z nowych, niesprawdzonych kont i paczki pasujące do wzorców nazw. (JFrog deklaruje, że dodał te paczki do katalogu złośliwych).

B. Higiena zależności i buildów

  • Twarde pinowanie wersji + blokady (package-lock.json, pnpm-lock.yaml, yarn.lock) oraz „frozen-lockfile” w CI: npm ci --ignore-scripts # lub pnpm install --frozen-lockfile yarn install --frozen-lockfile
  • Wyłącz npm install ze „skryptami” (--ignore-scripts) w środowiskach build/test, jeżeli to możliwe.
  • Provenance i podpisy: egzekwuj npm provenance/Sigstore, SBOM (CycloneDX/SPDX) oraz polityki „only-allow”: npx only-allow pnpm # przykład wymuszenia jednego menedżera
  • Segmentacja uprawnień: tokeny npm z zakresem tylko do odczytu w CI; publikacja z osobnych, minimalnych runnerów; tajemnice w dedykowanych OIDC+STS zamiast statycznych tokenów.
  • Alerting na anomalie publikacji: jeśli Twój zespół publikuje biblioteki na npm—dodaj reguły UEBA: „więcej niż N publikacji w 1h”, „nowa paczka z nieznanej przestrzeni nazw”, „nieznany maintainer”.

C. Blokada znanych kont/nazw

W firewallu rejestru/SCA skonfiguruj deny-listę kont i prefiksów nazw z raportów (np. veylatea, użytkownicy z list JFrog/SourceCodeRed), oraz reguły detekcji tea.yaml/*_publish*.js.


Różnice / porównania z innymi przypadkami (wrzesień 2025: „Shai-Hulud”)

  • Cel i ładunek:
    • IndonesianFoods/Big Red – głównie spam i samoreplikacja; brak bezpośredniego exfiltracji sekretów w payloadzie.
    • Shai-Hulud (IX–X 2025) – kradzież sekretów/poświadczeń, trojanizacja istniejących popularnych paczek (np. @ctrl/tinycolor), masowe modyfikacje package.json, wstrzykiwanie skryptów, re-publikacja pod kompromitowanymi maintainerami.
  • Wejście do ekosystemu:
    • IndonesianFoods – tworzenie nowych tysięcy paczek-wydmuszek.
    • Shai-Hulud – przejęcie istniejących paczek o dużym zasięgu.
  • Ryzyko krótkoterminowe:
    • IndonesianFoods – ryzyko przypadkowej instalacji i zanieczyszczenia supply chain.
    • Shai-Huludnatychmiastowe ryzyko wycieku sekretów i eskalacji w CI/CD.

Podsumowanie / kluczowe wnioski

  • Mamy do czynienia z przemysłową automatyzacją produkcji paczek npm: prosta logika, ale duża skala i ciągła replikacja.
  • Nawet jeśli obecny ładunek w „IndonesianFoods/Big Red” nie kradnie danych, ten sam pipeline może w dowolnym momencie przerzucić się na realne malware.
  • Obrona to kombinacja: twarde pinowanie + „frozen” instalacje + ignore-scripts w CI, podpisy/provenance, allow-listy/deny-listy w repozytoriach pośredniczących, segmentacja tokenów i monitoring anomalii publikacji.

Źródła / bibliografia

  1. SecurityWeek — „Tens of Thousands of Malicious NPM Packages Distribute Self-Replicating Worm” (13 listopada 2025). (SecurityWeek)
  2. JFrog Security Research — „Big Red – Indonesian-based Self-replicating Malicious Spam Campaign detected in npm” (11 listopada 2025) — analiza techniczna, IoC. (research.jfrog.com)
  3. SourceCodeRed — „‘IndonesianFoods’ worm publishes more than 78,000 malicious NPM packages” — pierwsze odkrycia, tempo publikacji, słowniki nazw. (sourcecodered.com)
  4. BleepingComputer — „New ‘IndonesianFoods’ worm floods npm with 100,000 packages” — tło czasowe 2023–2025 i wątek TEA. (BleepingComputer)
  5. CISA / Sysdig — materiały porównawcze nt. kampanii „Shai-Hulud” (wrzesień 2025) — inny typ celu (exfiltracja sekretów). (CISA)

FortiWeb: luka typu path traversal (publiczny PoC) aktywnie wykorzystywana do tworzenia kont administratora

Wprowadzenie do problemu / definicja luki

Na urządzeniach Fortinet FortiWeb (WAF) ujawniono i jest aktywnie wykorzystywane obejście uwierzytelniania prowadzące do tworzenia lokalnych kont administratora. Wektor ataku to path traversal na specyficznym endpointcie API, który pozwala napastnikowi wysłać żądanie HTTP i zarejestrować konto z uprawnieniami admina — bez podawania poświadczeń. Publiczne PoC i narzędzia detekcyjne są już dostępne, a ataki są masowo „sprayowane” z wielu adresów IP. Fortinet wydał wersję FortiWeb 8.0.2, która blokuje znany wektor (choć formalny wpis PSIRT odpowiadający dokładnie tej luce nie był jeszcze dostępny w chwili pierwszych publikacji).


W skrócie

  • Co się dzieje? Publiczny exploit wykorzystuje path traversal do wywołania wewnętrznego CGI i stworzenia lokalnego konta admina na FortiWeb.
  • Jakie wersje? Exploit działał na 8.0.1 i starszych, a nie działa na 8.0.2 według niezależnych testów (Rapid7).
  • Status producenta? Wydano 8.0.2 (release notes), brak pierwotnie dedykowanego PSIRT dla tej konkretnej luki w momencie publikacji newsów. Aktualizuj i monitoruj PSIRT.
  • IOC-e? Zgłoszono m.in. źródłowe IP (np. 107.152.41.19, 144.31.1.63, zakres 185.192.70.0/24) oraz przykładowe nazwy użytkowników („Testpoint”, „trader1”) i hasła występujące w payloadach.
  • Co zrobić teraz? Natychmiast zaktualizować do 8.0.2, odciąć panel zarządzania od Internetu, przejrzeć konta adminów, sprawdzić logi pod kątem żądań do fwbcgi i podanych IOC.

Kontekst / historia / powiązania

  • 6 października 2025: firma Defused rejestruje „nieznany exploit Fortinet” na honeypocie i publikuje sygnał w mediach społecznościowych.
  • Październik–listopad: skala ataków rośnie; pojawiają się artefakty payloadów tworzących konta admina oraz listy adresów IP źródłowych.
  • Koniec października / początek listopada: Fortinet publikuje FortiWeb 8.0.2 (build 0060).
  • 13 listopada 2025: Rapid7 publikuje analizę i potwierdza, że publiczny exploit nie działa na 8.0.2, działa na 8.0.1.
  • Równolegle: watchTowr Labs udostępnia narzędzie detekcyjne („Authentication Bypass Artifact Generator”) pomagające obronie w walidacji podatności.

Analiza techniczna / szczegóły luki

Wektor i endpoint

Badacze wskazują na path traversal przez punkt:

/api/v2.0/cmdb/system/admin%3f/../../../../../cgi-bin/fwbcgi

Żądanie POST z odpowiednio przygotowanym payloadem tworzy lokalne konto administratora. W logach widać następnie udane logowanie na nowo utworzony użytkownik.

Artefakty (przykładowe)

  • Nazwy użytkowników: Testpoint, trader1, trader
  • Hasła (przykładowe, obserwowane w dziczy): np. AFT3$tH4ck, AFT3$tH4ckmet0d4yaga!n, inne jednorazowe ciągi.
  • Źródłowe IP: 107.152.41.19, 144.31.1.63, zakres 185.192.70.0/24, 64.95.13.8, itd.
    Te artefakty ułatwiają triage i threat hunting, ale nie należy ich traktować jako wyczerpującej listy IOCs.

Status wersji i łagodzenie w 8.0.2

Rapid7 wykazał, że na FortiWeb 8.0.1 exploit sukcesywnie tworzy konto admina (HTTP 200 OK z JSON potwierdzającym utworzenie), a na 8.0.2 zwraca 403 Forbidden. To silna przesłanka, że 8.0.2 zawiera zmiany blokujące znany wektor (nawet jeśli vendor nie opisał ich jako „security fix” wprost).
Release notes dla 8.0.2 są dostępne publicznie (build 0060).


Praktyczne konsekwencje / ryzyko

  • Pełne przejęcie panelu: utworzenie konta z prof_admin lub równoważnym profilem dostępu to w praktyce pełna kontrola nad FortiWeb (zmiany polityk, upload certyfikatów, modyfikacje routingu/connectorów, eksport konfiguracji).
  • Pivoting do sieci wewnętrznej: FortiWeb jako bramka dla aplikacji bywa podłączony do segmentów o wyższej wrażliwości; atakujący może przeprowadzić lateral movement lub manipulacje ruchem L7.
  • Ukryta trwałość: atakujący może zakładać drugie (ukryte) konto, zmieniać ACL-e do panelu, wgrywać backdoory (np. przez integracje / connector).
  • Wpływ na ciągłość usług: zmiany polityk WAF mogą spowodować DoS aplikacyjny (fałszywe bloki) albo rozszczelnienie ochrony (allow-all).

Rekomendacje operacyjne / co zrobić teraz

Poniższe kroki są uporządkowane wg priorytetu „incydent już trwa / aktywny exploit”.

1) Patch & izolacja zarządzania

  1. Natychmiast zaktualizuj do FortiWeb 8.0.2 (build 0060). Zweryfikuj wersję po aktualizacji.
    Dokumentacja i release notes: 8.0.2.
  2. Odizoluj interfejs zarządzania: dostęp tylko z sieci zaufanej / VPN, żadnej ekspozycji do Internetu.

2) Szybki threat hunting (żądania do fwbcgi, nowe konta)

Na serwerze SIEM / w logach WAF wyszukaj żądania POST do fwbcgi z podejrzanych źródeł:

Splunk

index=fortiweb sourcetype=fortiweb:access OR sourcetype=fortiweb:system
| rex field=uri_path "(?<endpoint>fwbcgi)"
| search method=POST endpoint=fwbcgi
| stats count by _time, src_ip, http_status, uri, user, user_agent

Elastic (KQL)

(event.dataset: "fortiweb.*" and http.request.method:"POST" and url.path:*fwbcgi*)
| stats count by source.ip, http.response.status_code, url.full, user_agent.original, @timestamp

Grep (jeśli logi dostępne na hostach kolektorów)

grep -Rin "POST .*fwbcgi" /var/log/fortiweb/ 2>/dev/null

Dodatkowo przefiltruj po znanych IOC (przykładowe IP z raportów) oraz po user-agentach nietypowych dla panelu.

3) Audyt kont administratorów

W panelu/CLI przejrzyj listę lokalnych adminów i szukaj niespodziewanych wpisów (np. Testpoint, trader1, losowe ciągi).
Przykładowe (CLI FortiWeb – składnia zbliżona do FortiOS):

config system admin
    show
end

Jeśli pojawią się konta „obce”:

config system admin
    delete <nazwa_konta>
end

Następnie: wymuś rotację haseł dla wszystkich kont uprzywilejowanych i przejrzyj audit logi (kto i skąd się logował).

4) Weryfikacja wersji i reguł dostępowych

get system status            # sprawdź wersję FortiWeb (oczekiwane 8.0.2)
config system interface      # ogranicz źródła zarządzania do mgmt-VPN/subnetów
config system global
    set admin-scp enable
    set admin-https-redirect enable
end

Dodatkowo włącz listy zaufanych hostów (trust hosts) dla kont admina.

5) Telemetria, detekcje i blokady

  • WAF/NGFW przed panelem zarządzania: wymuś allowlistę źródeł (src IP) do portów admin (HTTPS/SSH).
  • Reguła IDS/IPS: sygnatura na URI zawierające admin%3f/../../../../../cgi-bin/fwbcgi (ew. normalizacja URL!).
  • watchTowr – artifact generator: użyj tylko w bezpiecznym labie do walidacji czy instancja jest podatna (nie uruchamiać przeciw środowiskom produkcyjnym bez autoryzacji!).

6) IR: jeśli wykryto kompromitację

  1. Odłącz panel od sieci zewnętrznej.
  2. Zrzut konfiguracji (na dowód), potem zmiana wszystkich kluczy/sekretów powiązanych z FortiWeb (w tym poświadczeń do backendów, connectorów).
  3. Rebuild/upgrade do 8.0.2, import czystej (przejrzanej) konfiguracji.
  4. Review ruchu aplikacyjnego – czy polityki WAF nie zostały celowo poluzowane.

Różnice / porównania z innymi przypadkami (np. CVE-2025-25257)

  • Bieżący incydent: path traversal z obejściem auth prowadzący do tworzenia lokalnych kont admina (publiczny PoC, aktywne nadużycia). Brak jednoznacznie przypisanej CVE w chwili pierwszych publikacji; 8.0.2 blokuje znany wektor.
  • CVE-2025-25257 (lipiec 2025): pre-auth SQLi → RCE w FortiWeb Fabric Connector (inne miejsce, inny łańcuch). watchTowr opublikował szczegóły techniczne i repo dla tego CVE. Nie należy mylić tych spraw — to odrębne podatności i różne ścieżki ataku.
  • CVE-2025-25254/FG-IR-25-512: wcześniejsze path traversal wymagające uprawnień admina (PR:H), odmienny profil ryzyka niż obecny unauth wektor.

Podsumowanie / kluczowe wnioski

  • Atak jest aktywny w Internecie i pozwala bezuwierzytelnieniowo tworzyć konta admina na podatnych FortiWeb.
  • Aktualizacja do 8.0.2 jest dziś praktycznie warunkiem koniecznym; dodatkowo zamykanie panelu do sieci zaufanych to „must-have”.
  • Przejrzyj konta adminów, logi do fwbcgi, oraz IOC opublikowane przez badaczy.
  • Utrzymuj monitoring PSIRT Fortinet i publikacji branżowych, bo sytuacja może ewoluować.

Źródła / bibliografia

  1. BleepingComputer — opis incydentu, endpoint, IOC, status 8.0.2. (BleepingComputer)
  2. Rapid7 — testy 8.0.1 vs 8.0.2, wnioski operacyjne. (Rapid7)
  3. PwnDefend/Defused — technikalia (endpoint, przykładowe IP/nicki/hasła). (pwndefend.com)
  4. watchTowr Labs (GitHub) — artifact generator do walidacji/detekcji auth bypass. (GitHub)
  5. Fortinet — dokumentacja / release notes FortiWeb 8.0.2 (build 0060). (docs.fortinet.com)
    (Przy porównaniach dodatkowo: watchTowr blog + repo CVE-2025-25257, NVD/PSIRT wcześniejszych luk.) (watchTowr Labs)

RCE w ImunifyAV/AI-Bolit: zdalne wykonanie kodu z poziomu skanera AV. Miliony serwisów Linux w zasięgu ataku

Wprowadzenie do problemu / definicja luki

W popularnym skanerze z rodziny Imunify – module AI-Bolit dostarczanym w Imunify360, ImunifyAV+ oraz darmowym ImunifyAV – wykryto krytyczny błąd pozwalający na zdalne wykonanie kodu (RCE) podczas analizy złośliwych, obfuskowanych plików PHP. Luka dotyczy wersji przed 32.7.4.0. Dostawca (CloudLinux/Imunify) wydał poprawki i zaleca natychmiastową aktualizację do ≥ 32.7.4.0; backport dla starszych gałęzi Imunify360 pojawił się 10 listopada 2025 r.

Kluczowe: wektor ataku uruchamia się w trakcie skanowania – skaner, próbując „odkleić” warstwy obfuskacji, może wykonać funkcje wskazane przez napastnika (np. system, exec, shell_exec, passthru, eval).


W skrócie

  • Zagrożone: instalacje Imunify360/AV+/AV z komponentem AI-Bolit < 32.7.4.0.
  • Ryzyko: RCE z uprawnieniami procesu skanera; na hostingu współdzielonym może to oznaczać pełne przejęcie serwera.
  • Wektor: specjalnie przygotowane, obfuskowane pliki PHP skanowane przez AI-Bolit (deobfuskacja wymuszona w integracji Imunify).
  • Stan: poprawka dostępna; brak CVE w momencie publikacji; oficjalna notka w bazie wiedzy, wzmianka w changelogu.
  • Akcja: update do 32.7.4.0+, audyt artefaktów po ewentualnym RCE, ograniczenie uprawnień procesu skanera, izolacja.

Kontekst / historia / powiązania

To nie pierwszy raz, gdy AI-Bolit ma problem z wykonywaniem nieufnych danych. W 2021 r. Talos opisał RCE (CVE-2021-21956) wynikające z PHP unserialize w AI-Bolit (dot. wersji 5.8–5.10.2), naprawione w 5.11.3. Obecna podatność jest innej natury, ale podobnie dotyka ścieżki analizy złośliwych próbek.

Wg źródeł publicznych, o problemie w 2025 r. informowano od końca października; 4 listopada pojawił się wpis w Zendesk (Knowledge Base) pt. „Ai-Bolit security vulnerability before v32.7.4.0”; 10 listopada – backport; 12–13 listopada – publikacje techniczne i prasowe.


Analiza techniczna / szczegóły luki

Miejsce błędu

  • AI-Bolit stosuje heurystyki i moduły deobfuskacji do rozklejania łańcuchów base64/gzinflate/pack/chr/ord/....
  • Krytyczna część logiki wywołuje funkcje przez call_user_func_array na nazwach funkcji odzyskanych z próbki (np. system, shell_exec, eval) – bez walidacji.
  • W CLI deobfuskacja bywa domyślnie wyłączona, ale integracja Imunify (Python wrapper) zawsze przekazuje --deobfuscate dla wszystkich typów skanów (tła, on-demand, user-initiated, rapid).

Wymagania ataku

  • Napastnik umieszcza plik PHP zawierający specjalnie przygotowany, obfuskowany ładunek (np. w katalogu strony lub katalogu tymczasowym), który trafi do skanera AI-Bolit.
  • W trakcie deobfuskacji skaner wykonuje zakodowane ciągi jako nazwy funkcji i argumenty → RCE.
  • Patchstack publikuje PoC, który podczas skanowania tworzy plik w /tmp – dowód wykonania komendy.

Poprawka

  • Vendor dodał whitelistę funkcji bezpiecznych i „deterministycznych” (np. base64_decode, gzinflate, strrev, chr, ord, …) oraz blokadę arbitralnych wywołań.

Praktyczne konsekwencje / ryzyko

  • Hosting współdzielony (cPanel/Plesk): jeśli skaner działa z podwyższonymi uprawnieniami (częste), exploity mogą umożliwić eskalację poza pojedynczy vhost – do roota w niektórych, źle utwardzonych konfiguracjach.
  • Zaciemnienie śladów: ładunki są z natury obfuskowane; logi skanera mogą nie zapisać jednoznacznej sygnatury. Trzeba polować na artefakty boczne (np. tworzone pliki w /tmp, nieoczekiwane połączenia wychodzące z procesu skanera PHP).
  • Łańcuchy ataków: możliwe dołożenie web-shelli, modyfikacja wp-config.php, wstrzyknięcie crontabów użytkowników, pivot na inne konta poprzez wspólne ścieżki/UID. (Wniosek z natury RCE skanera działającego globalnie na hostingu.)

Rekomendacje operacyjne / co zrobić teraz

1) Natychmiastowa aktualizacja

  • Docelowa wersja: AI-Bolit/Imunify AV 32.7.4.0 lub nowsza.
  • Oficjalne potwierdzenie i komunikat KB: „Ai-Bolit security vulnerability before v32.7.4.0” (CloudLinux Zendesk).

cPanel/WHM – systemy RPM (Alma/RHEL/CentOS):

# sprawdź pakiety Imunify/AI-Bolit
rpm -qa | egrep -i 'imunify|ai-bolit'

# aktualizacja z repozytoriów Imunify
yum clean all && yum -y update imunify* ai-bolit* imunify-antivirus* imunify360*

# restart usług powiązanych (przykładowo)
systemctl restart imunify360 imunify-antivirus || true

Debian/Ubuntu (Plesk/VPS):

apt-get update
apt-get install --only-upgrade imunify* ai-bolit* imunify360*
systemctl restart imunify360 imunify-antivirus || true

Uwaga: nazwy paczek różnią się między dystrybucjami/integracjami. W razie wątpliwości – sprawdź dpkg -l | grep -i imunify / rpm -qi <pakiet>.

2) Weryfikacja, czy wersja jest już bezpieczna

Ponieważ AI-Bolit to komponent, w praktyce sprawdzamy wersję paczek Imunify oraz binariów w /opt/ai-bolit/:

# szybkie tropy wersji
strings /opt/ai-bolit/ai-bolit.php 2>/dev/null | egrep -i 'version|ai-bolit'
# lub:
grep -i version /opt/ai-bolit/* 2>/dev/null

# Imunify360/AV wersje pakietów
imunify360-agent version 2>/dev/null || true
rpm -qa | grep -i ai-bolit || dpkg -l | grep -i ai-bolit

(Dostawca nie publikuje jednolitego polecenia „–version” dla AI-Bolit w każdej dystrybucji; opieramy się więc na wersjach pakietów i artefaktach plikowych). Informacja o wymaganej wersji pochodzi z BleepingComputer/KB.

3) Działania kompensacyjne (jeśli patch musi poczekać – niezalecane)

  • Izoluj skaner: uruchamiaj w kontenerze/sandboxie z mnim. uprawnieniami (AppArmor/SELinux profil, noexec na /tmp, ograniczenia sieciowe).
  • Zabroń deobfuskacji w trybie standalone (CLI) – nie w pełni skuteczne w integracji Imunify, która i tak wymusza --deobfuscate.
  • UCIĄĆ możliwości wykonania: mounty nodev,nosuid,noexec dla partycji tymczasowych (/tmp, /var/tmp, dev/shm).

4) Polowanie na ślady (triage po incydencie)

Skorzystaj z informacji o PoC (tworzenie pliku w /tmp), a także ogólnych wzorców RCE z PHP:

# 1) Artefakty PoC oraz potencjalnych ładunków
find /tmp -maxdepth 1 -type f -mmin -4320 -printf '%TY-%Tm-%Td %TT %p %s\n' | egrep 'l33t|def|tmp|\.php'

# 2) Nietypowe wywołania procesu skanera (czas skanów)
ps -eo user,pid,ppid,lstart,cmd | egrep -i 'ai-bolit|imunify|php'

# 3) Ostatnio zmieniane pliki w vhostach (web-shelle, .php w uploadach)
find /home /var/www -type f -mtime -2 -iname '*.php' -printf '%p %TY-%Tm-%Td %TT %u:%g %s\n' | head

# 4) Crontaby i autostarty użytkowników
for u in $(cut -d: -f1 /etc/passwd); do crontab -l -u "$u" 2>/dev/null | sed "s/^/$u: /"; done

# 5) Grep na funkcje wysokiego ryzyka w drzewach WWW
grep -R --include=*.php -nE '(shell_exec|system|passthru|eval\()' /var/www /home/*/public_html 2>/dev/null

Dodatkowo przejrzyj logi serwera w oknach czasowych skanów oraz outbound (egres) procesu PHP/ai-bolit.

5) Utwardzanie na przyszłość

  • Uruchamiaj skanery pod odseparowanym użytkownikiem, bez roota; ogranicz CAP_*.
  • Włącz LSM (AppArmor/SELinux) z profilami dla procesu skanera.
  • W hostingach współdzielonych: CageFS/CloudLinux, mod_suexec/php-fpm per-user, izolacja sieciowa i systemowa per konto.
  • Monitoring integralności (AIDE/OSSEC/Wazuh) + alerty na tworzenie plików wykonywalnych w /tmp.

Różnice / porównania z innymi przypadkami (jeśli dotyczy)

  • CVE-2021-21956 (AI-Bolit unserialize) – RCE przez niebezpieczne deserializacje; naprawione w 5.11.3.
  • Obecna luka (2025) – RCE przez wykonywanie funkcji odzyskanych z obfuskowanego kodu podczas deobfuskacji; brak CVE w chwili pisania, naprawa w 32.7.4.0 i nowszych.
    Wspólny mianownik: powierzchnia ataku w silniku analizy skanera. Wnioski dla vendorów: deobfuskacja powinna być czysto syntaktyczna, nigdy „egzekucyjna”.

Podsumowanie / kluczowe wnioski

  • Jeśli używasz Imunify360/ImunifyAV(+), zaktualizuj natychmiast do ≥ 32.7.4.0.
  • Potraktuj środowisko jak potencjalnie naruszone, jeśli skany uruchamiano na niezaufanych plikach w okresie przed aktualizacją – wykonaj triage i threat hunting.
  • Nawet narzędzia bezpieczeństwa wymagają zasady najmniejszych uprawnień i izolacji; skaner AV nie powinien móc zniszczyć całego hosta.

Źródła / bibliografia

  1. BleepingComputer – „RCE flaw in ImunifyAV puts millions of Linux-hosted sites at risk”, 13 listopada 2025 (szczegóły wersji, kontekst wdrożeń, backport 10 XI). (BleepingComputer)
  2. Patchstack – „Critical: Remote Code Execution via Malicious Obfuscated Malware in Imunify360 AV (AI-Bolit)”, 12 listopada 2025 (analiza techniczna, PoC, wymuszenie --deobfuscate, opis łatki). (Patchstack)
  3. CloudLinux/Imunify – Knowledge Base: „Ai-Bolit security vulnerability before v32.7.4.0.”, wpis z 4–12 listopada 2025 (oficjalna notka i zalecenie aktualizacji). (cloudlinux.zendesk.com)
  4. NVD/Cisco Talos – CVE-2021-21956 (porównanie z wcześniejszym RCE w AI-Bolit, 2021). (NVD)

Washington Post: wyciek danych prawie 10 tys. pracowników po ataku przez lukę w Oracle E-Business Suite

Wprowadzenie do problemu / definicja luki

„The Washington Post” poinformował o naruszeniu danych obejmującym 9 720 obecnych i byłych pracowników oraz kontraktorów. Atakujący uzyskali dostęp do środowiska ERP gazety wykorzystując wtedy nieznaną (zero-day) podatność w Oracle E-Business Suite (EBS), a następnie wykradli dane i podjęli próbę wymuszenia okupu. Do incydentu doszło w okresie 10 lipca – 22 sierpnia 2025 r., a jego potwierdzenie nastąpiło po dochodzeniu zakończonym 27 października 2025 r.. Wykradzione informacje obejmują imiona i nazwiska, numery kont i routingu bankowego oraz numery Social Security / NIP-y.

Według zgodnych relacji mediów branżowych, za kampanię stoi grupa Cl0p, znana z masowych ataków na łańcuch dostaw i operacje typu data theft + extortion.


W skrócie

  • Kogo dotyczy: prawie 10 tys. osób powiązanych z Washington Post (pracownicy, byli pracownicy, kontraktorzy).
  • Co wyciekło: dane tożsamości + wrażliwe dane finansowe (kont bankowych) oraz SSN/Tax ID.
  • Wektor ataku: pre-auth RCE w Oracle EBS wykorzystywana jako 0-day (CVE-2025-61882) i powiązana luka CVE-2025-61884 (przerwanie łańcucha eksploatacji).
  • Taktyka przeciwnika: cicha infiltracja, eksfiltracja danych HR/finansowych, następnie szantaż mailowy kierowany do kierownictwa.
  • Czas wykrycia: sygnałem były wiadomości od „bad actor” z 29 września; organizacja powiązała je z podatnością ujawnioną przez Oracle w październiku.

Kontekst / historia / powiązania

Kompromitacja Washington Post to element szerszej kampanii wymierzonej w klientów Oracle EBS. Oracle opublikował Alert bezpieczeństwa dla CVE-2025-61882 (pre-auth RCE) 4 października 2025 r., a następnie kolejną łatę dla CVE-2025-61884, co miało utrudnić łańcuch nadużyć. W tle firmy zgłaszały zmasowane maile z żądaniami okupu i groźbami publikacji danych. Analizy Google Cloud Threat Intelligence wskazują, że aktywność napastników zaczęła się najpóźniej na początku sierpnia, a ślady sięgają 10 lipca 2025 r.—czyli zanim patch był dostępny.


Analiza techniczna / szczegóły luki

Co to za podatności?

  • CVE-2025-61882zdalne wykonanie kodu bez uwierzytelnienia w komponencie Oracle E-Business Suite / Concurrent Processing (BI Publisher Integration). Eksploatacja możliwa z poziomu sieci bez konta użytkownika. CVSS wysoki/krytyczny.
  • CVE-2025-61884 – kolejna krytyczna luka w EBS, również pre-auth, opublikowana po wzmożonych atakach, aby zatrzymać łańcuch exploitów wykorzystywany przez przestępców.

Niezależne raporty badaczy (Google Cloud) łączą kampanię z Cl0p i opisują etapową eksploatację: wejście do aplikacji EBS przez 0-day, zagnieżdżenie w warstwie aplikacyjnej, eksfiltrację plików HR/finansowych oraz mailową eskalację żądań do kadry kierowniczej. W wielu organizacjach napastnicy działali tygodniami, zanim Oracle opublikował poprawki.

Dlaczego EBS jest tak atrakcyjnym celem?

EBS scala krytyczne procesy (HR, kadry-płace, finanse, łańcuch dostaw). Dostęp aplikacyjny = dostęp do baz danych z danymi płacowymi i identyfikatorami podatkowymi. To „złoto” dla operacji kradzieży tożsamości i przejęć wynagrodzeń (payroll diversion).

Jak mogła wyglądać ścieżka ataku (model uproszczony)?

  1. Wejście: zdalny exploit (pre-auth RCE) w EBS.
  2. Utrwalenie: artefakty w katalogach aplikacji / jobach „Concurrent Processing”, ew. zmiany w szablonach raportów.
  3. Eksfiltracja: bezpośrednio z serwera app/DB lub przez zadania raportowe (BI Publisher).
  4. Szantaż: e-maile do C-level/Legal z próbką danych i żądaniem okupu.

Praktyczne konsekwencje / ryzyko

Dla osób, których dane wyciekły:

  • Ryzyko kradzieży tożsamości (SSN/Tax ID), fraudów finansowych (numery kont/routing), ataków socjotechnicznych (targeted phishing). Washington Post oferuje 12–24 mies. monitoringu tożsamości (IDX).

Dla organizacji korzystających z Oracle EBS:

  • Ryzyko masowe: identyczny wektor dostępny przeciwko setkom instalacji (character of 0-day + szerokie wdrożenia).
  • Ryzyko regulacyjne: obowiązki notyfikacyjne (AG, regulatorzy sektorowi), możliwe pozwy zbiorowe.

Rekomendacje operacyjne / co zrobić teraz

Poniższe kroki można potraktować jako checklistę IR/defense dla zespołów SecOps/IT-ERP.

1) Natychmiastowe łatanie i twardnienie

  • Zastosuj łatę Oracle dla CVE-2025-61882 oraz CVE-2025-61884 (właściwy alert + CPU Oct 2025). Zweryfikuj poziom łat w każdym środowisku (prod/UAT/dev).
  • Włącz WAF/IPS z regułami wirtualnego łatania dla znanych wzorców żądań do komponentów EBS (BI Publisher/Concurrent Processing).
  • Ogranicz dostęp z internetu – EBS powinien być publikowany wyłącznie przez bramę z kontrolą tożsamości/segregacją i DLP.

2) Okno dochodzeniowe i triage

Oracle oraz niezależne analizy wskazują na aktywność napastników od lipca–sierpnia 2025. Przejrzyj logi od 1 lipca 2025 r. do dziś.
Minimalny zestaw artefaktów do sprawdzenia:

  • Logi HTTP/app serwera EBS (nietypowe błędy XSL/XDO, wywołania raportów, uploady szablonów).
  • Harmonogram „Concurrent Manager” – nowe/zmodyfikowane joby, zwłaszcza te uruchamiane przez konta techniczne.
  • Ślady eksfiltracji (duży outbound z app tier, połączenia do nietypowych hostów).
  • Konta uprzywilejowane – świeże dodania / zmiany haseł / eskalacje ról.

3) Szybkie reguły detekcyjne (przykłady)

Splunk (HTTP access – anomalie względem BI Publisher / XDO):

index=web OR index=ebs_logs sourcetype=access_combined
("xmlpserver" OR "xdo" OR "bipublisher")
| stats count avg(bytes) sum(bytes) values(status) by src, uri_path, http_method
| where count > 50 OR sum(bytes) > 50000000

Elastic/KQL (egress z hostów app EBS):

host.name : ("ebs-app-*") and
destination.bytes >= 10485760 and
not destination.ip in (internal_ranges)

Sigma (modyfikacja szablonów/artefaktów EBS – przykład ogólny):

title: Oracle EBS Suspicious BI Publisher Template Change
logsource:
  product: linux
  service: auditd
detection:
  selection:
    evt.type: "PATH"
    file.path|contains:
      - "/xmlpserver/" 
      - "/xdo/" 
  condition: selection
level: medium

Uwaga: ścieżki/artefakty dopasuj do konkretnej instalacji EBS (nazwa instancji, katalogi custom). Celem jest szybkie wyłapanie nietypowych modyfikacji.

4) Ochrona danych osobowych (HR/Payroll)

  • Rotacja tajemnic: hasła DB, konta integracyjne, klucze API do systemów płacowych.
  • Zamrożenie zmian płatniczych i weryfikacja na dwóch kanałach dla dyspozycji dot. kont wynagrodzeń.
  • Notyfikacja i wsparcie: zaoferuj monitoring kredytowy/kradzieży tożsamości – tak, jak zrobił Washington Post (IDX).

5) Długofalowe kontrole

  • Segmentacja: EBS w osobnej strefie, minimalny ruch do/z Internetu, egress ograniczony listami FQDN.
  • SBOM/asset inventory dla ERP i proces „patch SLO” z testowaniem off-cycle (poza CPU).
  • Kontrola zmian EBS – śledzenie szablonów BI Publisher, jobów „Concurrent Processing”, ról EBS (alerting na odchylenia).

Różnice / porównania z innymi przypadkami (jeśli dotyczy)

Atak na EBS przypomina kampanię Cl0p na MOVEit (2023)ten sam wzorzec: 0-day w popularnym produkcie, szybka eksfiltracja, szantaż masowy. Różnica: w EBS stawką są pełne rekordy HR/finansowe (SSN + konta bankowe), co eskaluje ryzyko w porównaniu z wieloma „typowymi” wyciekami PII. Doniesienia mówią także o żądaniach do 50 mln USD, co podkreśla presję finansową na ofiary.


Podsumowanie / kluczowe wnioski

  • Wysoka krytyczność: pre-auth RCE w systemie klasy ERP = natychmiastowy priorytet łatania i monitoringu.
  • Długi dwell time 0-day: aktywność trwała przed publikacją łat, więc okno dochodzeniowe musi być szerokie (min. od lipca 2025).
  • Konsekwencje realne, nie hipotetyczne: wyciek SSN i danych bankowych zwiększa ryzyko fraudów – wdrożyć procesy anty-fraud w HR/Payroll.
  • Nie tylko jedna ofiara: kampania ma charakter seryjny – jeśli masz EBS, załataj, przeszukaj, utwardź.

Źródła / bibliografia

  1. BleepingComputer – szczegóły incydentu, skala, typy danych, przebieg czasowy. (BleepingComputer)
  2. Pismo notyfikacyjne Washington Post do poszkodowanych (CA OAG) – daty, zakres danych, działania naprawcze.
  3. Oracle Security Alert – CVE-2025-61882 (pre-auth RCE w EBS). (Oracle)
  4. Google Cloud Threat Intelligence – oś czasu ataków na EBS i atrybucja kampanii. (Google Cloud)
  5. CyberScoop – kontekst kampanii Cl0p wobec klientów Oracle i zakres wycieku w WP. (CyberScoop)