
TL;DR
Krytyczna luka w Java SE 5/6/7 (moduł 2D/CMM) umożliwia zdalne wykonanie kodu przy przetwarzaniu spreparowanego obrazu rastrowego w aplecie/Java Web Start. W 2013 r. była aktywnie wykorzystywana w kampaniach drive‑by (np. pakiety exploitów), a Oracle załatał ją w JRE/JDK 7u17 i 6u43. Dla SOC mapujemy to na T1189 (wejście przez stronę WWW) oraz T1203 (eksploatacja klienta). Zalecane: odinstalować wtyczkę Java w przeglądarkach (legacy), wymusić aktualizacje, monitorować łańcuch browser → java.exe → LOLBIN.
Krótka definicja techniczna
CVE‑2013‑1493 to błąd w Color Management (CMM) komponentu Java 2D, który przy przetwarzaniu obrazu o specjalnie przygotowanych parametrach rastra powoduje odczyt poza buforem i/lub uszkodzenie pamięci JVM, co umożliwia RCE przez aplet/Java Web Start w przeglądarce. CVSS v2: 10.0 (AV:N/AC:L/Au:N/C:C/I:C/A:C).
Gdzie występuje / przykłady platform
- Endpointy z przeglądarką i wtyczką Java: Windows, macOS, Linux (w 2013 r. powszechne; dziś przeważnie legacy/ICS/offline).
- Środowiska VDI/kioski z dziedziczonymi aplikacjami Web Start.
- Nie dotyczy bezpośrednio serwerów (Oracle: luka dotyczy Javy uruchamianej w przeglądarce).
Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)
Atakujący umieszcza na stronie WWW (lub w pakiecie exploitów) aplet/Java Web Start wczytujący obraz z nietypowymi parametrami rastra. Podczas renderowania w module Java 2D/CMM dochodzi do naruszenia pamięci JVM → przekazanie sterowania do złośliwego payloadu. W typowym łańcuchu drive‑by użytkownik odwiedza stronę (często watering hole), przeglądarka ładuje wtyczkę Java, a po eksploatacji następuje pobranie i uruchomienie kolejnego modułu (np. downloader), często z wykorzystaniem systemowych LOLBIN‑ów (cmd.exe, powershell.exe, rundll32.exe). Oracle podkreślał, iż lukę należy traktować jako dotyczącą Javy w przeglądarkach (nie serwerowej).
Dlaczego skuteczna (historycznie):
- masowa ekspozycja wtyczki Java w przeglądarkach;
- niska interakcja użytkownika (często brak – lub akceptacja ostrzeżenia);
- natychmiastowe przejście do Execution po Initial Access (ATT&CK).
Artefakty i logi
| Windows Security | 4688 (Process Create) | java.exe/javaw.exe/javaws.exe jako dziecko chrome.exe/msedge.exe/firefox.exe/iexplore.exe | Nietypowe dziś; silnie podejrzane w 2025 r. |
| Sysmon | 1 (Process Create) | java*.exe → uruchamia cmd.exe/powershell.exe/wscript.exe/rundll32.exe/mshta.exe | Łańcuch post‑eksploatacyjny |
| Sysmon | 3 (Network Connect), 22 (DNS) | Połączenia HTTP(S) zaraz po starcie java.exe do nieznanych domen; rzadkie SNI/JA3 | Korelować z Proxy/NGFW |
| Sysmon | 7 (ImageLoad) | Dynamiczne DLL do Javy ładowane z %TEMP%/%APPDATA% | Droppery |
| Sysmon | 11 (FileCreate) | Nowe JAR/EXE/DLL w profilach użytkownika | Artefakty post‑eksploatacyjne |
| Proxy/HTTP | — | Pobrania .jar/.class/MIME application/java-archive, stare typy application/x-java-applet | Wzorzec drive‑by |
| EDR (MDE/SentinelOne/itp.) | — | Reguły behawioralne: przeglądarka → Java → LOLBIN → sieć | Korelacje |
| CloudTrail (S3 data events) | GetObject | Pobrania .jar/.class z bucketów spoza allowlisty | Detekcja hostingu artefaktów |
| K8s audit | — | [N/D] — luka dot. klienta przeglądarkowego | |
| M365 Audit | — | [N/D] — brak bezpośredniego śladu |
Detekcja (praktyczne reguły)
Sigma (Windows / Sysmon)
title: Browser-Spawns-Java-And-Java-Spawns-LOLBIN (CVE-2013-1493 TTP) id: 9b9a6e2f-9a1c-4bde-b3d9-13d313493000 status: experimental logsource: product: windows category: process_creation detection: browser_parent: ParentImage|endswith: - '\chrome.exe' - '\msedge.exe' - '\firefox.exe' - '\iexplore.exe' java_proc: Image|endswith: - '\java.exe' - '\javaw.exe' - '\javaws.exe' lolbin_child: ParentImage|endswith: - '\java.exe' - '\javaw.exe' - '\javaws.exe' Image|endswith: - '\cmd.exe' - '\powershell.exe' - '\wscript.exe' - '\cscript.exe' - '\rundll32.exe' - '\mshta.exe' condition: (browser_parent and java_proc) or lolbin_child fields: - UtcTime - Image - ParentImage - CommandLine - ParentCommandLine falsepositives: - Rzadkie, legacy Web Start / środowiska deweloperskie level: high tags: - attack.T1189 - attack.T1203Splunk (SPL)
1) Przeglądarka → Java
index=sysmon sourcetype=XmlWinEventLog:Microsoft-Windows-Sysmon/Operational EventCode=1 | where mvfind(["chrome.exe","msedge.exe","firefox.exe","iexplore.exe"], lower(coalesce(ParentImage,ParentImage)))>=0 | where like(lower(Image), "%\\java.exe") OR like(lower(Image), "%\\javaw.exe") OR like(lower(Image), "%\\javaws.exe") | stats earliest(_time) as firstSeen latest(_time) as lastSeen values(CommandLine) by Computer, User, ParentImage, Image, ParentCommandLine2) Java → podejrzany LOLBIN / łańcuch procesu
index=sysmon EventCode=1 (Image="*\\cmd.exe" OR Image="*\\powershell.exe" OR Image="*\\wscript.exe" OR Image="*\\rundll32.exe" OR Image="*\\mshta.exe") | join ProcessGuid type=inner [ search index=sysmon EventCode=1 (Image="*\\java.exe" OR Image="*\\javaw.exe" OR Image="*\\javaws.exe") | table ProcessGuid, Computer, User, Image, ParentImage, CommandLine, ParentCommandLine, _time ] | table _time, Computer, User, ParentImage, Image, CommandLine, ParentCommandLineKQL (Microsoft Defender/Sentinel)
// Browser -> Java DeviceProcessEvents | where InitiatingProcessFileName in~ ("chrome.exe","msedge.exe","firefox.exe","iexplore.exe") | where FileName in~ ("java.exe","javaw.exe","javaws.exe") | project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessCommandLine, AccountName // Java -> LOLBIN within 2 min let suspiciousChildren = dynamic(["cmd.exe","powershell.exe","wscript.exe","rundll32.exe","mshta.exe"]); DeviceProcessEvents | where InitiatingProcessFileName in~ ("java.exe","javaw.exe","javaws.exe") | join kind=inner ( DeviceProcessEvents | where FileName in~ (suspiciousChildren) | project ChildTime=Timestamp, DeviceId, ChildFile=FileName, ChildCmd=ProcessCommandLine, InitiatingProcessParentId ) on DeviceId, InitiatingProcessId==InitiatingProcessParentId | where ChildTime between (Timestamp .. Timestamp + 2m) | project DeviceName, Timestamp, ChildTime, InitiatingProcessFileName, ChildFile, ChildCmdCloudTrail query (CloudWatch Logs Insights – S3 Data Events)
Użyteczne, gdy wykrywamy hostowanie artefaktów JAR/CLASS w S3 (częsty etap w kampaniach drive‑by).
fields @timestamp, eventSource, eventName, requestParameters.bucketName, requestParameters.key, sourceIPAddress, userAgent | filter eventSource = "s3.amazonaws.com" and eventName = "GetObject" | filter requestParameters.key like /\.jar$/ or requestParameters.key like /\.class$/ | filter ispresent(userAgent) and (userAgent like 'Mozilla%' or userAgent like '%Java%') | sort @timestamp descElastic / EQL (Endpoint)
// Java spawns LOLBIN process where process.name in ("cmd.exe","powershell.exe","wscript.exe","rundll32.exe","mshta.exe") and parent.process.name in ("java.exe","javaw.exe","javaws.exe")Heurystyki / korelacje
- Łańcuch czasowy: browser → java.exe → LOLBIN → outbound HTTP(S)/DNS w krótkim oknie (≤2 min).
- Pliki tymczasowe: nowe .jar/.dll/.exe w %TEMP%, %APPDATA%, ~/Library/Application Support.
- Proxy/NGFW: nagłe pobrania JAR/CLASS z rzadkich domen → brak wcześniejszej reputacji.
- EDR: zastrzyk modułów do JVM spoza katalogów Javy; Java jako nietypowy rodzic skryptów/LOLBIN‑ów.
- Reputacja/Threat Intel: korelacja domen/IP z historycznymi pakietami exploitów (Blackhole/Sweet Orange itd.).
False positives / tuning
- Legitymne środowiska Web Start/IcedTea‑Web (intranety, ICS) — białe listy domen/aplikacji.
- Deweloperzy Javy uruchamiający narzędzia buildujące z przeglądarki.
- W 2025 r. każde uruchomienie wtyczki Java w przeglądarce jest podejrzane; tuning opierać na allowlistach domen i podpisów plików JAR.
Playbook reagowania (IR)
- Triage i izolacja: odłącz host, zachowaj pamięć/dysk (artefakty JVM).
- Zbieranie faktów: drzewo procesów od przeglądarki do java*.exe, następnie do LOLBIN‑ów; zrzut listy modułów JVM; lista nowo utworzonych plików.
- Sieć: zablokuj domeny/sumy SHA256 pobranych JAR/EXE; sprawdź proxy dla innych ofiar.
- Eskalacja/przeciwdziałanie:
- odinstaluj/wyłącz plugin Java;
- wymuś aktualizacje do JRE/JDK 7u17/6u43 na hostach legacy; rozważ całkowite usunięcie Javy z przeglądarek.
- Hunting retro (30–90 dni): wzorce pobrań .jar/.class, łańcuchy browser → Java → LOLBIN.
- Lessons learned: polityka click‑to‑play / blokada wtyczek, patch management, segmentacja egress.
Przykłady z kampanii / case studies
- Blackhole i inne pakiety exploitów (2013) szeroko nadużywały luk w Javie, w tym CVE‑2013‑1493, do drive‑by download i pobierania malware.
- Detekcje vendorów (MSFT) klasyfikowały ruch jako Exploit:Java/CVE‑2013‑1493 – wejście przez stronę WWW, następnie pobranie i uruchomienie plików.
Lab (bezpieczne testy) — przykładowe komendy
Wyłącznie w odizolowanym, testowym środowisku (VM, brak Internetu). Celem jest wygenerowanie artefaktów detekcyjnych, nie eksploatacja luki.
A. Symulacja łańcucha browser → Java
- Otwórz w przeglądarce lokalny plik HTML z linkiem jnlp (pusty, benigny) albo uruchom:
- Sprawdź, czy reguły Sigma/Splunk/KQL łapią „browser → javaw.exe”.
B. Java → LOLBIN (benigny helper)
Utwórz prosty JAR uruchamiający notepad (tylko logówka):
Oczekiwany artefakt: java.exe → notepad.exe (LOLBIN), co powinno trafić w reguły.
Mapowania (Mitigations, powiązane techniki)
Mitigations (ATT&CK):
- M1051 – Update Software (patchowanie Javy; eliminacja wtyczki/legacy)
- M1031 – Network Intrusion Prevention (blok sygnatur exploit‑kit/JAR)
- M1040 – Behavior Prevention on Endpoint (EDR/anty‑exploit)
- M1017 – User Training (świadomość ryzyk apletów/ostrzeżeń przeglądarki)
Powiązane techniki:
- T1189 Drive‑by Compromise (wejście)
- T1203 Exploitation for Client Execution (RCE w kliencie)
- T1204.002 User Execution: Malicious File (czasem wymagane kliknięcie/akcept)
- T1059 Command and Scripting Interpreter (następstwa)
Źródła / dalsza literatura
- Oracle Security Alert (zakres: dotyczy Javy w przeglądarkach; wersje naprawcze 7u17/6u43) (Oracle)
- Oracle JDK 7u17 Release Notes (baseline wersji z poprawką) (Oracle)
- NVD CVE‑2013‑1493 (opis techniczny, CVSS 10.0, „exploited in the wild”) (NVD)
- CISA Alert: Oracle Java Contains Multiple Vulnerabilities (wersje podatne i zalecenia) (CISA)
- Microsoft WDSI – Exploit:Java/CVE‑2013‑1493 (mechanika ataku przez WWW) (Microsoft)
- McAfee Labs (pakiety exploitów wykorzystywały m.in. CVE‑2013‑1493) (McAfee)
- ATT&CK – T1189 / T1203 / TA0001 / TA0002 / v18 updates (mapowanie technik i wersja ATT&CK) (MITRE ATT&CK)
Checklisty dla SOC / CISO (krótko)
SOC (operacyjne):
- Włączone logi: Sysmon (1/3/7/11/22), Security 4688, EDR z korelacją rodzic‑dziecko.
- Reguły: „browser → java.exe”, „java.exe → LOLBIN”, pobrania .jar/.class.
- Blokady: domeny/URL z kampanii, Content‑Type application/java-archive.
- Hunting retro: 30–90 dni w proxy/EDR pod kątem JAR/CLASS + łańcuch procesów.
- Alerting na dowolne uruchomienie wtyczki Java w przeglądarce (2025).
CISO (strategiczne):
- Eliminacja wtyczek Java (NPAPI) w organizacji; akceptacja wyjątków tylko czasowa.
- Polityka patchowania: min. 7u17/6u43 na systemach legacy lub migracja/wycofanie.
- EDR z prewencją behawioralną (M1040) i IPS przy egress (M1031).
- Program świadomości (M1017) dot. apletów/ostrzeżeń przeglądarki.
Uwaga o ryzyku: Choć wtyczka Java jest powszechnie wycofana we współczesnych przeglądarkach, luka ma znaczenie historyczne, a wewnętrzne środowiska legacy (np. ICS/offline) mogą wciąż generować analogiczne ścieżki ataku.
Rekomendacja: najlepiej całkowicie usunąć wtyczkę Java z przeglądarek i ograniczyć Javę do aplikacji lokalnych z aktualną wersją JVM.














