Komendy Linuksa jako pierwsza linia analizy incydentu
W codziennej pracy analityka bezpieczeństwa (SOC) umiejętność szybkiego korzystania z wbudowanych poleceń Linuksa bywa bezcenna. Gdy liczy się czas – na przykład podczas triage incydentu lub szybkiej analizy forensic – często jedynym narzędziem jest konsola SSH bez dostępu do interfejsu graficznego. Instalacja dodatkowego oprogramowania zwykle nie wchodzi w grę, więc klasyczne polecenia powłoki Bash stają się pierwszą linią obrony Blue Team.
Krytyczna luka w Oracle Java 7 (JDK/JRE 7u10 i starsze) pozwalała na zdalne wykonanie kodu przez applet lub Java Web Start (drive‑by). Java 6 nie była podatna. CVSS v2: 10.0.
Mechanizm: obejście Security Managera przez dwie podatności: (a) łańcuch JMX/MBean (getMBeanInstantiator → findClass), (b) błąd w Reflection (rekurencja i pominięcie kontroli). Powszechnie wykorzystywana w styczniu 2013 r. (m.in. Blackhole/Nuclear Pack).
Oracle wydało poza‑cykliczną łatę (7u11) i podniosło domyślny poziom bezpieczeństwa Javy do High (klik‑to‑run).
Typowe ślady: łańcuch procesów browser → jp2launcher/java[w].exe → cmd/powershell/wscript, pobrania .jar/.jnlp z nieznanych domen, logi Sun/Java/Deployment.
Mitigacje: aktualizacja/wyłączenie wtyczki Java, blokada MIME application/java-archive i application/x-java-jnlp-file, polityki ASR/EDR.
Krótka definicja techniczna
CVE‑2013‑0422 to para luk w Oracle Java 7 umożliwiająca zdalne wykonanie kodu i wyjście z piaskownicy przez niezaufane applet/JNLP w przeglądarce. Wektor: drive‑by. Dotyczy JDK/JRE 7u10 i starszych; JDK/JRE 6 nie dotyczy. CVSSv2=10.0.
Gdzie występuje / przykłady platform
Windows/macOS/Linux (endpoint, przeglądarka + plugin Java) — klientowe uruchomienie applet/JNLP. Nie dotyczy serwerów ani samodzielnych aplikacji Java bez przeglądarki.
VDI / środowiska korporacyjne — stacje administracyjne z historycznie zainstalowaną Javą 7.
Proxy/NGFW/MDE/EDR/SIEM — główne źródła telemetrii do detekcji.
Chmury (M365/Azure/AWS/GCP) — detekcja po stronie endpointów zarządzanych (Defender for Endpoint), na brzegach (CloudFront/NGFW) lub – rzadziej – w CloudTrail (gdy organizacja sama hostowała artefakty .jar/.jnlp w S3).
Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)
Atak następował po wejściu użytkownika na złośliwą lub skompromitowaną stronę. Niezaufany applet/JNLP wykorzystywał dwa błędy w Javie 7:
JMX/MBean — publiczne getMBeanInstantiator w JmxMBeanServer dawało dostęp do prywatnego obiektu MBeanInstantiator i metod findClass, co umożliwiało załadowanie klas poza kontrolą Security Managera.
Reflection — rekurencyjne wywołania API refleksji omijały kontrolę w MethodHandles.Lookup.checkSecurityManager z powodu sposobu działania sun.reflect.Reflection.getCallerClass. W praktyce oznaczało to pełne RCE z uprawnieniami użytkownika po samej wizycie na stronie (0‑click beyond browsing). Luki były aktywnie wykorzystywane przez Blackhole i Nuclear Pack od 10–11 stycznia 2013 r. Oracle zareagowało alarmem bezpieczeństwa i 7u11 (zmiana default na High, wymuszając potwierdzenia dla appletów).
Artefakty i logi
Źródło
EID/typ
Co szukać
Uwagi
Sysmon
1 (Process Create)
chrome/iexplore/firefox → jp2launcher.exe/java.exe/javaw.exe; dalej spawn cmd.exe, powershell.exe, wscript.exe, mshta.exe
jp2launcher.exe = Java Web Launcher.
Sysmon
3 (Network Connect)
java[w].exe łączące się do Internetu (80/443) tuż po pobraniu .jar/.jnlp
Korelować z proxy/DNS.
Sysmon
7 (Image Load)
DLL wtyczki Java (np. npjp2.dll, jp2iexp.dll)
Indykatory uruchomienia pluginu.
Sysmon
11/22
Tworzenie plików w %AppData% / zapytania DNS przez java.exe
Dropper po eksploatacji.
Windows Security
4688/4689
Tworzenie/zamknięcie procesu jak wyżej
Włącz audyt procesu.
Windows Filtering Platform
5156/5157
Dopuszczenie/blokada połączeń java.exe
Korelacja z hostem docelowym.
Proxy/NGFW
HTTP
Odpowiedzi Content-Type: application/java-archive (.jar), application/x-java-jnlp-file (.jnlp) z nietypowych domen
Wzorzec drive‑by.
Java Deployment
pliki
deployment.properties, logi w …\LocalLow\Sun\Java\Deployment\
Lokacje użytkownika na Windows/macOS/Linux.
MDE (Advanced Hunting)
DeviceProcessEvents, DeviceNetworkEvents
Te same łańcuchy + zdalne URL .jar/.jnlp
CloudTrail (S3 data events)
GetObject
Jeśli organizacja hostowała .jar/.jnlp — nieoczekiwane pobrania/UA z Java 1.7
title: Java Process Network Activity To Untrusted Domains
id: 8b0f7c87-8d07-4a1b-9f77-jar-net
status: experimental
logsource:
product: windows
category: network_connection
detection:
selection:
Image|endswith:
- '\java.exe'
- '\javaw.exe'
DestinationPort:
- 80
- 443
filter_corp_domains:
DestinationHostname|endswith:
- '.corp.local'
- '.trusted.example'
condition: selection and not filter_corp_domains
level: medium
tags:
- attack.t1189
- attack.t1203
Splunk (SPL)
index=winevent* (EventCode=4688 OR sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1)
| eval parent=coalesce(ParentImage,ProcessGuidParent,ParentProcessName)
| search parent IN ("*\\chrome.exe","*\\iexplore.exe","*\\firefox.exe","*\\msedge.exe")
| search Image IN ("*\\java.exe","*\\javaw.exe","*\\jp2launcher.exe")
| stats earliest(_time) as first_seen, values(CommandLine) values(ParentCommandLine) by host, Image, parent, ProcessId
| join type=left host, ProcessId [ search index=winevent* EventCode IN (4688,1) Image IN ("*\\cmd.exe","*\\powershell.exe","*\\wscript.exe","*\\mshta.exe") | table host, ParentProcessId, Image, CommandLine, _time ]
| sort - first_seen
KQL (Microsoft 365 Defender – Advanced Hunting)
let browsers = dynamic(["chrome.exe","iexplore.exe","firefox.exe","msedge.exe"]);
let shells = dynamic(["cmd.exe","powershell.exe","wscript.exe","mshta.exe"]);
DeviceProcessEvents
| where Timestamp > ago(7d)
| where FileName in~ ("java.exe","javaw.exe","jp2launcher.exe")
| where InitiatingProcessFileName in~ (browsers)
| join kind=leftouter (
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where FileName in~ (shells)
| project DeviceId, ShellTime=Timestamp, FileName, ProcessCommandLine, InitiatingProcessId
) on DeviceId, InitiatingProcessId
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, RemoteUrl
CloudTrail (CloudWatch Logs Insights — S3 data events)
Uwaga: tylko gdy masz S3 data events. Szuka pobrań .jar/.jnlp z User-Agent zawierającym „Java”.
fields @timestamp, eventSource, eventName, sourceIPAddress, userAgent, requestParameters.bucketName as bucket, requestParameters.key as key
| filter eventSource = "s3.amazonaws.com" and eventName = "GetObject"
| filter key like /(\.jar|\.jnlp)$/i
| filter userAgent like /Java/i
| sort @timestamp desc
Elastic EQL
sequence by host.id with maxspan=5m
[ process where event.action == "start" and
process.name in ("chrome.exe","iexplore.exe","firefox.exe","msedge.exe") ]
[ process where event.action == "start" and
process.name in ("java.exe","javaw.exe","jp2launcher.exe") and
process.parent.name in ("chrome.exe","iexplore.exe","firefox.exe","msedge.exe") ]
[ process where event.action == "start" and
process.parent.name in ("java.exe","javaw.exe") and
process.name in ("cmd.exe","powershell.exe","wscript.exe","mshta.exe") ]
Skan hostów pod kątem dropperów w %AppData% i autostartu.
CISO (strategiczna):
Eliminacja Javy w przeglądarkach (M1042) + polityka click‑to‑run.
Patch management i wycofanie legacy (M1051).
Wymuszenie EDR/ASR (M1040) i filtracji na brzegu (M1037).
Segmentacja (M1030) dla stacji wysokiego ryzyka.
Priorytetyzacja KEV i regularne tabletopy „drive‑by → execution”.
Uwaga końcowa: Oracle wskazuje, że podatność dotyczyła tylko klientowych wdrożeń Javy (applet/JNLP), a nie serwerów czy samodzielnych aplikacji Java; poprawka 7u11 wprowadziła High jako domyślny poziom bezpieczeństwa. Dziś najlepszą praktyką jest całkowite usunięcie lub odseparowanie wtyczki Java z przeglądarek użytkowników.
6 listopada 2025 r. Fedora udostępniła aktualizację xorg-x11-server do wersji 21.1.20 dla Fedora 42, która eliminuje trzy nowe luki w X.Org/Xwayland: CVE-2025-62229, CVE-2025-62230 i CVE-2025-62231. Pakiet został zbudowany w ramach zgłoszenia FEDORA-2025-43c76ece40 i jest dostępny przez system aktualizacji Bodhi/DNF. Aktualizacja podbija wersję serwera X i zawiera poprawki bezpieczeństwa dostarczone upstream przez X.Org.
W skrócie
Dotknięte komponenty: X.Org X server (Xorg) oraz Xwayland.
Wersja naprawcza (Fedora 42): 21.1.20-1.fc42.
Vektory ataku: głównie lokalne – złośliwy lub skompromitowany klient X11 może spowodować use-after-free lub nadpisanie pamięci w serwerze X.
Skutki: awarie (DoS) lub potencjalnie wykonanie kodu w kontekście serwera X.
Działaj teraz: zaktualizuj pakiety i zrestartuj sesję graficzną/menedżer logowania.
Kontekst / historia / powiązania
X.Org pozostaje krytycznym elementem stosu graficznego na Linuksie – nawet w dystrybucjach domyślnie używających Waylanda, ponieważ Xwayland utrzymuje kompatybilność z aplikacjami X11. W 2025 r. X.Org kilkukrotnie poprawiał błędy klasy memory safety, a dystrybucje (w tym Fedora) backportują te poprawki do stabilnych wydań. Najnowszy update dla F42 scala poprawki z upstream i udostępnia je poprzez Bodhi.
Analiza techniczna / szczegóły luki
CVE-2025-62229 — use-after-free w obsłudze powiadomień X11 Present Błąd w logice tworzenia powiadomień Present może pozostawić „dangling pointery” i prowadzić do use-after-free, skutkując korupcją pamięci lub crashem serwera X/Xwayland. Atakujący może wywołać błąd, generując odpowiednio spreparowane powiadomienia Present.
CVE-2025-62230 — use-after-free w czyszczeniu zasobów XKB Niewłaściwa obsługa sprzątania zasobów klienta w rozszerzeniu XKB prowadzi do wcześniejszego zwolnienia struktur bez poprawnego odłączenia powiązanych obiektów. Skutkiem jest use-after-free, który może ujawnić się przy rozłączaniu się klienta.
CVE-2025-62231 — przepełnienie (overflow) w XkbSetCompatMap Brak właściwych kontroli zakresów podczas przetwarzania danych wejściowych do funkcji XkbSetCompatMap() może spowodować nadpisanie pamięci lub awarię. Problem dotyczy rozszerzenia XKB i może być wyzwalany specjalnie spreparowanymi danymi od klienta.
Wersja naprawcza i pakietowanie (Fedora 42) Fedora podniosła pakiet xorg-x11-server do 21.1.20-1.fc42 w ramach aktualizacji FEDORA-2025-43c76ece40, opisanej jako „Update to xserver 21.1.20, CVE fix for: CVE-2025-62229, CVE-2025-62230, CVE-2025-62231”.
Praktyczne konsekwencje / ryzyko
Priorytet: średni–wysoki w środowiskach z wieloma użytkownikami na tym samym hoście, z X11 forwarding lub z nieufnymi klientami (np. CI, VDI, laby).
Model ataku:lokalny (z poziomu klienta X), ale skutki mogą obejmować DoS i potencjalny RCE w procesie serwera X/Xwayland.
Zakres: dotyczy zarówno klasycznego Xorg, jak i Xwaylanda – praktycznie wszystkich stacji roboczych korzystających z aplikacji X11 na Fedorze 42.
Rekomendacje operacyjne / co zrobić teraz
Zaktualizuj system (Fedora 42):sudo dnf upgrade --advisory FEDORA-2025-43c76ece40 # lub pełna aktualizacja sudo dnf upgrade --refresh Następnie zrestartuj sesję graficzną (wylogowanie/logowanie) lub przeładuj menedżer logowania (gdm/sddm/lightdm), aby nowe biblioteki/serwer zostały wczytane.
Wyłącz/ogranicz X11 forwarding w SSH lub używaj trybu ForwardX11Trusted=no tylko w razie potrzeby.
Preferuj Waylanda tam, gdzie to możliwe; jeśli aplikacje X11 są niezbędne, uruchamiaj je przez Xwayland (izolacja per-proces).
Monitoruj logi (journalctl -b | grep -i Xorg\|Xwayland) po aktualizacji, czy nie pojawiają się crashe/ostrzeżenia.
Egzekwuj aktualizacje także na systemach headless z pakietami Xvfb/Xwayland.
Różnice / porównania z innymi przypadkami (jeśli dotyczy)
W 2025 r. X.Org łatał też inne błędy pamięci w komponentach XKB/kompozytora (m.in. use-after-free i przepełnienia bufora) – omawiane tu CVE wpisują się w ten trend: błędy walidacji długości/żywotności obiektów w rozszerzeniach X11 skutkujące korupcją pamięci. Aktualizacja 21.1.20 w Fedorze 42 konsoliduje poprawki konkretnie dla CVE-2025-62229/-62230/-62231.
Podsumowanie / kluczowe wnioski
Fedora 42 wydała szybką aktualizację do xserver 21.1.20, eliminując trzy świeże luki w X.Org/Xwayland.
Ataki są głównie lokalne, ale mogą skutkować poważnymi konsekwencjami (DoS/RCE).
Zaktualizuj pakiety i zrestartuj środowisko graficzne – to najprostszy i najskuteczniejszy krok ograniczający ryzyko.
Źródła / bibliografia
Fedora Bodhi — FEDORA-2025-43c76ece40: opis aktualizacji do 21.1.20 i listy CVE. (bodhi.fedoraproject.org)
Błąd w podsystemie HotSpot/bytecode verifier Javy umożliwia zdalne wykonanie kodu oraz ucieczkę z sandboxa po wejściu na złośliwą stronę lub uruchomieniu nieufnego apletu/JNLP. W praktyce był intensywnie wykorzystywany przez zestawy exploitów (np. Blackhole) do początkowej infekcji stacji roboczych. Aktualizacja JRE/JDK do 7u5/6u33+ i blokada treści web to kluczowe działania. Mapa do ATT&CK: T1189 + T1203.
Krótka definicja techniczna
CVE-2012-1723 to krytyczna podatność RCE w Oracle Java SE (HotSpot) polegająca na błędnej optymalizacji i niewystarczającym sprawdzaniu typów w weryfikatorze bajtkodu dla instrukcji dostępu do pól/statycznych, co umożliwia sandbox escape i wykonanie dowolnego kodu w kontekście użytkownika.
Gdzie występuje / przykładowe platformy
Windows / macOS / Linux (endpointy z JRE/JDK, dawne wtyczki przeglądarek NPAPI, Java Web Start) — scenariusz klienta (najczęstszy).
AD / M365 / ESXi / K8s / chmury (AWS/Azure/GCP): brak bezpośredniego wektora — wpływ pośredni poprzez kompromitację stacji użytkownika i dalsze TTPs (np. kradzież sesji/danych po inicjalnym dostępie). [Nie dotyczy bezpośrednio].
Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)
Błąd wynika z nieprawidłowej optymalizacji i niedostatecznej kontroli typów przez weryfikator bajtkodu HotSpot dla instrukcji GETFIELD/PUTFIELD/GETSTATIC/PUTSTATIC, co prowadzi do niespójności typów i obejścia kontroli bezpieczeństwa. Skutkiem jest ucieczka z sandboxa JRE i możliwość załadowania dodatkowych klas z podwyższonymi uprawnieniami, a dalej RCE. Podatność była wieloplatformowa i szybko trafiła do Blackhole exploit kit oraz do modułów narzędzi ofensywnych, przez co stała się powszechna w kampaniach drive‑by.
Z punktu widzenia ofiary inicjatorem jest zwykle przeglądarka otwierająca stronę z applet/JAR/JNLP, co powoduje załadowanie złośliwej klasy Javy i eksploitację bez dodatkowej interakcji użytkownika (CVSS UI:N). Efektem wtórnym bywają procesy potomne (np. cmd.exe, powershell.exe) lub pobieranie dodatkowych plików (droppers).
index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| eval parent=lower(ParentImage), child=lower(Image)
| search parent="*\\java.exe" OR parent="*\\javaw.exe"
| search child="*\\cmd.exe" OR child="*\\powershell.exe" OR child="*\\wscript.exe" OR child="*\\cscript.exe" OR child="*\\rundll32.exe" OR child="*\\mshta.exe"
| stats count min(_time) as first_seen max(_time) as last_seen by host, ParentImage, ParentCommandLine, Image, CommandLine, User, process_guid, parent_process_guid
KQL (Microsoft 365 Defender)
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","mshta.exe")
| summarize count(), first_seen=min(Timestamp), last_seen=max(Timestamp)
by DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, FileName,
InitiatingProcessCommandLine, CommandLine, InitiatingProcessSHA256, SHA256
(Opcjonalnie, korelacja ruchu sieciowego):
DeviceNetworkEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where RemoteUrl has_any (".jar",".jnlp",".class")
| summarize dcount(RemoteUrl), makeset(RemoteUrl) by DeviceName, InitiatingProcessFileName, bin(Timestamp, 15m)
AWS (CloudTrail Lake / Athena — tylko gdy włączone S3 Data Events)
-- CloudTrail Lake / Athena (przykład): pobrania *.jar* przez tożsamości korp.
SELECT eventTime, userIdentity.arn, sourceIPAddress, requestParameters.bucketName as bucket,
requestParameters.key as objectKey, userAgent
FROM cloudtrail_logs
WHERE eventSource = 's3.amazonaws.com'
AND eventName = 'GetObject'
AND requestParameters.key LIKE '%.jar'
AND userAgent LIKE 'Java/%';
Wymaga rejestrowania Data Events dla S3 i zapytań Lake/Athena.
Elastic (EQL)
process where
process.parent.name in ("java.exe","javaw.exe") and
process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","mshta.exe")
Heurystyki / korelacje (co łączyć)
Łańcuch czasowy (±5 min): (Proxy/EDR) pobranie *.jar/*.jnlp → (Sysmon)java[w].exe start → proces potomny z interpretatorem/skryptem → (Sysmon 3) nowa sesja sieciowa C2.
UA i referer: User-Agent: Java/ + domena świeżo zarejestrowana + brak wcześniejszych hitów w organizacji.
Ścieżki plików: zapisy w %TEMP%, %USERPROFILE%\AppData\Local\Temp\ z rozszerzeniami .jar/.class, po których następuje wykonanie EXE/DLL.
EDR/AV: alarmy typu Exploit:Java/CVE-2012-1723 skorelowane z ruchem do nowych domen.
False positives / tuning
Deweloperzy Java (Maven/Gradle/ant) mogą sporadycznie uruchamiać powłokę — whitelisting hostów dev, podpisanych ścieżek narzędzi (np. maven wrapper) i repozytoriów artefaktów.
Instalatory (np. launchery gier/aplikacji na Javie) — filtruj po kataloguProgram Files\Java\bin\java.exe vs. embedded JRE w katalogu aplikacji.
Agreguj alert dopiero, gdy co najmniej dwa warunki spełnione: java → child proci pobranie *.jar/.jnlp z nieznanej domeny.
Playbook reagowania (IR)
Kwalifikacja/izolacja: odłącz host od sieci (EDR izolacja).
Identyfikacja wersji JRE/JDK: java -version; w Windows sprawdź HKLM\Software\JavaSoft\Java Runtime Environment\*.
Blackhole exploit kit (2012): szybka integracja exploitu na CVE‑2012‑1723; ataki drive‑by masowo infekowały hosty przez aplety Javy; publiczny opis procesu wykorzystania i ucieczki z sandboxa.
Microsoft WDSI: rodzina detekcji Exploit:Java/CVE‑2012‑1723 — aplet pobiera i uruchamia dodatkowe pliki z zewnętrznego hosta po wejściu na zhakowaną stronę.
Sygnatury IPS (Broadcom/Symantec): gotowe reguły sieciowe podkomponentu HotSpot dla tego CVE.
CISA KEV: CVE wpisany do Known Exploited Vulnerabilities (wymóg patchowania dla FCEB). Informacja widnieje m.in. na karcie NVD (odniesienie do KEV).
Lab (bezpieczne testy) — symulacja dla SOC
Cel: przetestować reguły bez eksploitacji — wygenerować podejrzany łańcuch java → shell.
Kod (bezpieczny):TestSpawn.javaimport java.io.*; public class TestSpawn { public static void main(String[] args) throws Exception { new ProcessBuilder("cmd.exe", "/c", "echo HelloFromJava").start().waitFor(); } }
Budowa i uruchomienie (host testowy/VM):javac TestSpawn.java jar --create --file test.jar TestSpawn.class java -cp . TestSpawn java -jar test.jar
Oczekiwane artefakty: Sysmon EID=1 (java.exe → cmd.exe), opcjonalnie EID=3 (połączenia, jeśli dodać curl w ProcessBuilder).
Weryfikacja: sprawdź, czy zadziałały Sigma/SPL/KQL/EQL z sekcji 7.
Uwaga: Testy wyłącznie w odizolowanej VM i ze znanym, niewinnym ładunkiem.
M1021/M1031: restrykcja treści web i IPS na granicy
Program zarządzania technologiami starszymi (EOL) oraz egzekwowanie standardów oprogramowania
Uwaga o ryzyku: CVE‑2012‑1723 pozostaje klasycznym przykładem, jak jedna luka w środowisku klienckim może zapewnić atakującym natychmiastowy punkt wejścia (Initial Access) i wykonanie kodu (Execution). Nawet dziś, w retrospektywie, jej wzorce artefaktów (Java → child proc, pobrania JAR) są cennymi sygnałami do budowy analityk behawioralnych w SOC.
CVE‑2012‑0507 to błąd type confusion w Java SE (klasa AtomicReferenceArray), umożliwiający zdalne wykonanie kodu przez złośliwy aplet na stronie (drive‑by). Luka była masowo wykorzystywana w 2012 r. (m.in. Blackhole EK i botnet Flashback), szczególnie na macOS, gdzie łatka pojawiła się z opóźnieniem. SOC powinien łączyć telemetry z przeglądarek/proxy (pobrania JAR), EDR (łańcuch procesów java[w].exe → LOLBIN), Sysmon (EID 1/3/11/22) i M365 UrlClickEvents. Podstawowe mitygacje: aktualizacje (M1051), wyłączenie/odinstalowanie wtyczki Java (M1042), restrykcja treści web (M1021), kontrola egzekucji (M1038).
Krótka definicja techniczna
CVE‑2012‑0507 to podatność w Java Runtime Environment (JRE 7u2 i starsze, 6u30 i starsze, 5.0u33 i starsze) w module Concurrency; nieprawidłowe sprawdzanie typów w AtomicReferenceArray pozwala atakującemu ominąć sandbox i wykonać dowolny kod w kontekście użytkownika po otwarciu złośliwego apletu/aplikacji Java Web Start.
Gdzie występuje / przykłady platform
Windows / Linux / macOS: przeglądarka z wtyczką Java/Java Web Start. W 2012 r. Flashback masowo infekował macOS przez CVE‑2012‑0507 (ponad 550k–600k hostów), m.in. z powodu opóźnienia w wydaniu łatki dla Java na macOS.
VDI/DaaS, stacje adminów, serwery jump: ryzyko przy swobodnym surfowaniu z podatną wtyczką.
Chmura / M365: wektor kliknięcia z e‑maila/Teams (telemetria UrlClickEvents), hosty w VDI w chmurze.
Przeglądarki: drive‑by przez skompromitowane witryny, malvertising, iFrame; klasyczny T1189.
Szczegółowy opis techniki (jak działa, cele, skuteczność)
CVE‑2012‑0507 umożliwia eskalację uprawnień apletu poprzez błędną obsługę typów w AtomicReferenceArray. Poprzez manipulację obiektem zserializowanym atakujący doprowadza do type confusion i zapisu referencji poza oczekiwanym typem, co skutkuje wyjściem z sandboxa Javy i RCE. W praktyce exploit był osadzany w stronie www; odwiedziny (lub przeklikany link) inicjowały pobranie JAR i łańcuch dalszej egzekucji/pobrania ładunku (np. przez exploit kity typu Blackhole), czyli T1189 → T1203, często poprzedzone T1204.001.
Dlaczego skuteczna? W 2012 r. wtyczki Java były powszechne; rozproszenie wersji, opóźnienia łatek (zwł. macOS) i automatyczne uruchamianie apletów w przeglądarkach sprzyjało cichym kompromitacjom (drive‑by). Kampania Flashback osiągnęła setki tysięcy ofiar; Oracle załatało błąd w lutym 2012, a Apple dostarczyło aktualizację dla macOS dopiero na początku kwietnia.
# Child processes z Java (Sysmon)
index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
(ParentImage="*\\java.exe" OR ParentImage="*\\javaw.exe")
Image IN ("*\\powershell.exe","*\\cmd.exe","*\\wscript.exe","*\\cscript.exe","*\\rundll32.exe","*\\mshta.exe","*\\regsvr32.exe","*\\msiexec.exe")
| stats count earliest(_time) as first latest(_time) as last by host, ParentImage, ParentCommandLine, Image, CommandLine, ParentProcessGuid, ProcessGuid
# Proxy/secure web gateway: pobrania JAR z UA Java (dostosuj pola)
index=proxy (cs_user_agent="Java*" OR user_agent="Java*") (uri_path="*.jar" OR url="*.jar")
| stats count by src_ip, user, url, user_agent
KQL (Defender for Endpoint / Microsoft 365 Defender)
// 1) Child processy z Java
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where FileName in~ ("powershell.exe","cmd.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","msiexec.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, ProcessCommandLine
// 2) Pobrania JAR przez procesy Java
DeviceNetworkEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where RemoteUrl endswith ".jar" or RequestUrl endswith ".jar"
| summarize cnt=count(), firstSeen=min(Timestamp), lastSeen=max(Timestamp) by DeviceName, InitiatingProcessFileName, RemoteUrl
// 3) Kliknięcia linków (MDO Safe Links)
UrlClickEvents
| where Url has ".jar" or Url has "java" // dopasuj pod kampanie
| project Timestamp, AccountUpn, Url, ActionType, Workload, IPAddress, ThreatTypes
(„UrlClickEvents” w Advanced Hunting zawiera pełny URL i werdykt kliknięcia.)
fields @timestamp, @message
| filter @message like /User-Agent=.*Java\/[0-9]/ and @message like /\.jar/
| sort @timestamp desc
| limit 100
(*CloudTrail nie loguje żądań HTTP do aplikacji; użyj logów ALB/CloudFront/WAF lub NGFW.)
Elastic / EQL
// Java -> LOLBIN
process where process.parent.name in ("java.exe","javaw.exe") and
process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","msiexec.exe")
// HTTP: UA Java + JAR (przykładowy ECS)
network where network.protocol == "http" and
http.request.method == "GET" and
http.request.headers.user_agent : "Java*" and
url.path : "*.jar"
Heurystyki / korelacje
Łańcuch czasowy: browser → java[w].exe → LOLBIN → outbound (HTTP/DNS) w krótkim oknie.
Proxy/NGFW: UA „Java/*” oraz *.jar z domen o niskiej reputacji → koreluj z procesami Java na hostach.
macOS: brak Gatekeeper promptów przy apletach w WWW (historycznie); sprawdzaj ~/Library/LaunchAgents po nietypowych wpisach.
Zestawy exploitów: obserwuj wzorce Blackhole/Blacole (historyczne IOC/telemetria) jako retro‑threat hunting.
False positives / tuning
Instalatory oparte na Java (Install4j/Launch4j) uruchamiają msiexec.exe/regsvr32.exe — whitelist po ścieżce, podpisie i hashu.
Narzędzia deweloperskie (Gradle/Maven) – generują ruch HTTP; filtruj po docelowych repo (repo.maven.org, wew. Artifactory).
UA „Java/*” bywa używany przez skrypty integracyjne — weryfikuj hosty serwerowe vs. stacje użytkowników.
OSX/Flashback (2012) — masowe infekcje macOS (550k–600k hostów) przez CVE‑2012‑0507; Apple wydało aktualizację w kwietniu 2012 i dodało narzędzia usuwające.
Cel: wygenerować telemetrię detekcyjną, bez exploita.
Proxy/ALB telemetry: serwuj plik hello.jar z wewn. HTTP i symuluj pobranie „klient‑Java”: # serwer python3 -m http.server 8000 # klient (symulacja UA Java z curl) curl -A "Java/1.6.0_31" http://<lab-web>:8000/hello.jar -o /tmp/hello.jar Następnie uruchom zapytania (Splunk/Elastic/KQL/Insights) z sekcji 7.
EDR/Sysmon łańcuch procesów (symulacja benign): uruchom legalną aplikację Java, a oddzielnie (ręcznie) proces pomocniczy, by sprawdzić reguły korelacyjne — nie symuluj złośliwego kodu.
M365: wyślij do siebie e‑mail z bezpiecznym linkiem do hello.jar w labie i sprawdź UrlClickEvents (czy klik i domena są odnotowane).
Mapowania (Mitigations, powiązane techniki)
Mitigations (ATT&CK):
M1051 – Update Software (szybkie łatanie JRE/JDK; polityki patch).
M1042 – Disable or Remove Feature or Program (wyłączenie/odinstalowanie wtyczki Java w przeglądarkach).
M1037 – Filter Network Traffic (blokada znanych domen EK/C2, polityki egress).
M1017 – User Training (świadomość dot. linków/ostrzeżeń przeglądarki).
Powiązane techniki:
T1189 — Drive‑by Compromise – Exploit ładuje się po wejściu na stronę (watering hole/malvertising/iFrame), skanuje wersje wtyczek i serwuje JAR z exploitem; po skutecznym RCE dropper pobiera właściwy malware.
T1203 — Exploitation for Client Execution – Wykorzystanie luki w aplikacji klienckiej (tu: plugin/Java Web Start) do wykonania kodu — bez potrzeby interakcji poza wejściem na stronę.
T1204.001 — User Execution: Malicious Link – Często poprzedza drive‑by; kliknięcie linku kieruje do strony serwującej exploit i uruchamia T1203.
Krytyczny błąd w Adobe Flash Player oraz w komponencie Authplay bibliotek Adobe Reader/Acrobat (CVE‑2011‑0609) umożliwiał zdalne wykonanie kodu przez spreparowane pliki SWF. W 2011 r. był aktywnie wykorzystywany w atakach z załącznikami XLS (osadzony SWF), m.in. w incydencie RSA SecurID. Detekcja: korelacja Email → Office/Reader → podejrzany child‑process/C2, blokada starych Flash/Reader, sandboxing załączników.
Krótka definicja techniczna
CVE‑2011‑0609 to luka (memory corruption/unspecified) w Adobe Flash Player 10.2.154.13 i starszych (Windows/macOS/Linux/Solaris, Android), Adobe AIR 2.5.1 i starszych oraz w Authplay.dll/AuthPlayLib.bundle używanym przez Adobe Reader/Acrobat 9.x–9.4.2 oraz 10.x–10.0.1. Otwarcie złośliwego SWF (np. osadzonego w pliku Excel) skutkuje RCE w kontekście aplikacji.
Gdzie występuje / przykłady platform
Windows / macOS / Linux / Solaris (endpointy) — przeglądarki i Office/Reader ładujące wtyczkę Flash/komponent Authplay.
Android (mobile) — podatne wydania Flash 10.1.106.16 i starsze.
Active Directory — punkt rozprzestrzenienia po początkowym foothold; nie jest bezpośrednio podatne.
M365 — wektor mailowy (Exchange/Defender for Office 365: Safe Attachments/Safe Links, Message trace).
AWS/Azure/GCP — brak bezpośredniej podatności; możliwa telemetria z WorkMail/SES/WorkSpaces, VPC Flow/Firewall do korelacji C2.
Kubernetes/ESXi — nie dotyczy bezpośrednio; przydatne do detekcji lateral movement po inicjalnym włamaniu. (Flash i Authplay są EOL; nadal warto utrzymywać detekcję retro/archiwalną dla threat huntingu i IR).
Szczegółowy opis techniki (jak działa, cele, skuteczność)
Ataki wykorzystywały SWF z exploitem osadzony w pliku .xls wysyłanym jako spear‑phishing. Po otwarciu arkusza Excel ładował komponent Flash/ActiveX, wykonywał payload w pamięci i uruchamiał proces podrzędny (np. dropper/loader), typowo ustanawiający łączność C2 i dogrywający RAT (w publicznych opisach wskazywano m.in. Poison Ivy). W kampanii na RSA załącznik o nazwie “2011 Recruitment plan.xls” prowadził do kradzieży poufnych danych SecurID. Ta taktyka była skuteczna z powodu: zaufania do dokumentów Office, łańcucha User Execution → Client Exploitation, braku patchy i ograniczonej widoczności korelacyjnej między warstwą e‑mail, procesami na hoście i ruchem sieciowym.
Artefakty i logi (tabela — EID, CloudTrail, K8s audit, M365)
Kategoria
Źródło
ID/Operacja
Wzorzec / Pola
Co oznacza
Windows
Sysmon
EID 1 (ProcessCreate)
ParentImage in (EXCEL.EXE,AcroRd32.exe,WINWORD.EXE) + Image in (cmd.exe,powershell.exe,wscript.exe,mshta.exe,rundll32.exe)
Nietypowe child‑procesy po otwarciu dokumentu/Readera (wskaźnik exploit→payload).
Sysmon
EID 3 (NetworkConnect)
ParentImage jak wyżej; dest na świeże domeny/DGA/dynamic DNS
Wczesne C2 po exploitacji.
Sysmon
EID 7 (ImageLoaded)
ImageLoaded endswith authplay.dll / Flash*.ocx z nieaktualnych ścieżek
Ładowanie wrażliwego komponentu.
Sysmon
EID 11 (FileCreate)
Tworzenie dropperów w %APPDATA%, %TEMP% (np. *.tmp, *.dat)
(CloudTrail nie zawiera treści e‑maili; użyj WorkMail Message Flow / SES event logs oraz VPC Flow do wskazania ewentualnego C2).
Elastic / EQL
process where
process.parent.name in ("EXCEL.EXE","AcroRd32.exe","WINWORD.EXE") and
process.name in ("cmd.exe","powershell.exe","wscript.exe","mshta.exe","rundll32.exe")
Heurystyki / korelacje
Łańcuch czasowy: Email (.xls z osadzonym SWF) → uruchomienie Office/Reader → child‑process → połączenie sieciowe do świeżej domeny → zapis droppera w %TEMP%/%APPDATA%.
Artefakty Flash/Authplay: ładowanie authplay.dll/Flash*.ocx przez Office/Reader w momencie otwarcia pliku.
Pola do pivotowania:NetworkMessageId ↔ DeviceProcessEvents ↔ proxy/DNS; hash załącznika ↔ sandbox verdict.
Treść socjotechniki: tematy rekrutacyjne/HR (“Recruitment plan”), krótka treść maila zachęcająca do otwarcia załącznika.
False positives / tuning
Legalne dodatki Office/Reader mogą incydentalnie uruchamiać narzędzia systemowe (rzadkie).
Zastosuj tuning po wersjach: skup się na hostach, gdzie w telemetrycznych śladach widać obiekty Flash/Authplay lub historyczne wersje Reader/Flash (jeśli utrzymywane w VDI/legacy).
Kontekst e‑mail: preferuj zdarzenia z verdictem Malware/High‑confidence lub z sandboxu (MDO Safe Attachments/3rd‑party).
Sieć: ogranicz alerty tylko do outbound na świeże/dynamiczne domeny i/lub niedawno zarejestrowane certyfikaty.
Playbook reagowania (IR)
Triage & izolacja hosta (EDR isolate/quarantine).
Zabezpieczenie artefaktów: hash i kopia pliku .xls, volatile data (listy procesów, połączenia, moduły).
Incydent RSA SecurID (marzec 2011): spear‑phishing z „2011 Recruitment plan.xls”, osadzony SWF wykorzystał CVE‑2011‑0609, po czym doinstalowano backdoor (m.in. raportowano Poison Ivy) i kradziono dane związane z SecurID.
Wnioski branżowe: Adobe ostrzegało o aktywnej eksploatacji w ukierunkowanych atakach; aktualizacje zostały opublikowane w drugiej połowie marca 2011 r.
Lab (bezpieczne testy) — przykładowe komendy
Cel: zweryfikować, czy Twoje detektory wychwytują łańcuch Email/Office → child‑process/C2 bez używania realnego exploita.
Test 1 (host): z poziomu kontenera testowego/VDI uruchom kontrolowany child‑process z Office (np. otwarcie pliku, który uruchamia calc/whoami przez zgodny z polityką add‑in) i sprawdź, czy reguły Sigma/Splunk/KQL go łapią.
Test 2 (poczta): wyślij do skrzynki testowej plik XLS z nieszkodliwym osadzonym obiektem (np. formularz OLE bez makr) i obserwuj, czy Safe Attachments nadaje verdict i czy pipeline korelacyjny łączy NetworkMessageId ↔ DeviceProcessEvents.
Atomic Red Team (alternatywa): użyj atomików dla T1204.002 i T1566.001 (wersje bezpieczne/PUA), by wygenerować telemetryczne ślady bez rzeczywistej eksploatacji.
Korelacja EmailEvents ↔ DeviceProcessEvents ↔ DNS/Proxy dla załączników .xls.
Aktywne reguły na Office/Reader → shell/interpreter (Sigma/SIEM).
Hunting: authplay.dll / Flash*.ocx załadowane przez Office/Reader (historyczne hosty/VDI).
Blokady w SEG/MDO: OLE/ActiveX w dokumentach Office z internetu.
Sandboxing załączników (dynamic + static) i automatyczna kwarantanna.
CISO:
Egzekwowanie M1051 (patch management) i EOL hygiene (wyeliminować Flash/Authplay).
NIPS/SSL inspection dla wczesnego C2 (M1031).
Szkolenia z rozpoznawania spear‑phishingu; procedury zgłoszeń.
Testy kontrolne (Purple Team/Atomic) mapowane do T1566.001/T1204.002/T1203.
Uwaga końcowa: Flash/Reader wersje z 2011 r. są dziś wygasłe, ale ślady i techniki (phishing + client‑side RCE) pozostają aktualne. Warto utrzymywać detekcje oparte na wzorcu zachowania (ATT&CK), nie na konkretnym CVE.
JFrog ujawnił krytyczną podatność CVE-2025-11953 (CVSS 9.8) w popularnym pakiecie npm @react-native-community/cli (i komponencie cli-server-api) wykorzystywanym do uruchamiania serwera deweloperskiego Metro w projektach React Native. Luka pozwala niezautoryzowanemu atakującemu na zdalne wykonanie poleceń poprzez wysłanie żądania POST do podatnego endpointu serwera. Błąd został załatany — poprawka dostępna jest od wersji 20.0.0 pakietu @react-native-community/cli-server-api.
W skrócie
CVE-2025-11953 umożliwia zdalne wykonanie kodu (RCE) na maszynie, która uruchomiła serwer Metro z podatną wersją CLI.
Dotyczy projektów inicjalizowanych z użyciem @react-native-community/cli (bez frameworka), gdy Metro nasłuchuje na interfejsach zewnętrznych. Expo i środowiska niekorzystające z Metro zwykle nie są podatne.
Wykonalność: pełne RCE potwierdzone na Windows; na macOS/Linux — uruchamianie arbitralnych programów z ograniczoną kontrolą argumentów (prawdopodobnie możliwa eskalacja po dalszych badaniach).
Aktualizacja do ≥20.0.0 (cli-server-api) lub wiązanie serwera do 127.0.0.1 niweluje ryzyko.
Kontekst / historia / powiązania
Zespół JFrog Security Research opisał podatność 4 listopada 2025 r.; SecurityWeek nagłośnił problem tego samego dnia. Meta (współopiekun ekosystemu RN) szybko wprowadziła poprawkę. Incydent wpisuje się w szerszy trend zagrożeń łańcucha dostaw JavaScript/npm oraz ataków na narzędzia deweloperskie.
Analiza techniczna / szczegóły luki
Zakres wersji: podatny jest komponent @react-native-community/cli-server-api w wersjach 4.8.0–20.0.0-alpha.2; naprawiono od 20.0.0. W praktyce dotyczy to również odpowiadających im wersji @react-native-community/cli.
Przyczyna: endpoint /open-url w middleware CLI przyjmował wartość z ciała żądania (req.body.url) i przekazywał ją bez walidacji do funkcji open() (pakiet open), co prowadzi do Command Injection. Dodatkowo serwer bywał wiązany do 0.0.0.0/[::] (zamiast localhost), wystawiając go na sieć.
Wektor ataku (bez uwierzytelniania): atakujący w tej samej sieci (lub przez ekspozycję portu) wysyła POST na podatny endpoint; na Windows możliwe jest wykonanie dowolnych poleceń shell (np. cmd /c ...).
Identyfikatory i scoring: CVE-2025-11953, CVSS 3.1: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).
Advisory: wpis w GitHub Advisory Database opisuje podatność jako OS command injection w serwerze Metro otwieranym przez RN CLI.
Praktyczne konsekwencje / ryzyko
Przejęcie stacji deweloperskiej: uruchamianie arbitralnych poleceń (pełne RCE na Windows) może skutkować kradzieżą tokenów, kluczy SSH, poświadczeń do rejestrów, a nawet zatruciem łańcucha dostaw poprzez wstrzyknięcie backdoorów do kodu aplikacji.
Pivot w sieci firmowej: stanowiska Dev często mają szerokie uprawnienia i dostęp do CI/CD; złośliwy kod może rozprzestrzenić się do pipeline’ów. (Wniosek na bazie wektora RCE i typowych konfiguracji CI/CD).
Atak z sąsiedniej sieci / Wi-Fi gościnne: domyślny binding na wszystkie interfejsy zwiększa ryzyko w środowiskach współdzielonych (biura, coworkingi).
Rekomendacje operacyjne / co zrobić teraz
1) Natychmiastowe działania naprawcze
Zaktualizuj **@react-native-community/cli-server-api do wersji >= 20.0.0 we wszystkich projektach RN; w razie potrzeby zaktualizuj także @react-native-community/cli do wersji zgodnej z poprawką.
Jeśli aktualizacja teraz niemożliwa: uruchamiaj Metro z wiązaną pętlą zwrotną: npx react-native start --host 127.0.0.1
2) Detekcja i triage
Sprawdź, czy w projekcie/globalnie masz podatny pakiet: npm list @react-native-community/cli-server-api oraz npm list -g @react-native-community/cli-server-api.
Przejrzyj logi zapór/IDS oraz telemetrykę hostów pod kątem nietypowych żądań POST do serwera Metro i uruchomień procesów spoza IDE (zwłaszcza na Windows). (Dobre praktyki wynikające z wektora ataku).
3) Utwardzenie procesu developerskiego
Ogranicz ekspozycję: tuneluj dostęp do Metro przez adb reverse/USB lub używaj sieci izolowanych dla dev.
Higiena sekretów: rotuj tokeny npm/GitHub, klucze SSH i ciasteczka SSO, jeśli Metro było wystawione i podatne.
CI/CD: uruchamiaj buildy w czystych, odseparowanych agentach; włącz skan zależności (SCA) i SAST (np. reguły wykrywające flow req.body → open()). (Rekomendacje spójne z analizą JFrog).
Różnice / porównania z innymi przypadkami (jeśli dotyczy)
W przeciwieństwie do wielu incydentów npm z 2025 r. (ataków supply-chain poprzez zainfekowane pakiety), CVE-2025-11953 nie wymaga zainstalowania złośliwej wersji biblioteki — atak trafia w interfejs HTTP serwera dev działający lokalnie, ale często wystawiony do sieci. (Porównanie do ostatnich kampanii npm ma charakter kontekstowy).
Podsumowanie / kluczowe wnioski
Zagrożenie jest realne i krytyczne (CVSS 9.8): wystarczy niezaufane żądanie POST do serwera Metro.
Patch jest dostępny: aktualizuj do @react-native-community/cli-server-api >= 20.0.0 i/lub wiąż Metro do 127.0.0.1.
Zadbaj o higienę środowisk Dev: ogranicz ekspozycję, rotuj sekrety, wzmocnij monitoring oraz polityki CI/CD.