Wojciech Ciemski, Autor w serwisie Security Bez Tabu - Strona 425 z 465

CVE‑2025‑43300 — ImageIO out‑of‑bounds write (Apple iOS/iPadOS/macOS) — mapowanie MITRE ATT&CK

TL;DR

Luka CVE‑2025‑43300 to błąd zapisu poza bufor (CWE‑787) w ImageIO, wyzwalany podczas przetwarzania specjalnie przygotowanego pliku graficznego (m.in. DNG). Apple potwierdza doniesienia o wykorzystaniu w atakach ukierunkowanych. Patch dostępny m.in. w iOS/iPadOS 18.6.2, 17.7.10, 16.7.12, 15.8.5 oraz macOS Sequoia 15.6.1 / Sonoma 14.7.8 / Ventura 13.7.8. Z perspektywy ATT&CK zdarzenie odwzorowujemy na T1203/T1658 (Exploitation for Client Execution). SOC powinien szukać koincydencji: (1) napływ/miniaturyzacja obrazu (DNG/RAW/JPEG‑L) → (2) awarie/EXC_BAD_ACCESS w QuickLook*/ImageIO → (3) sieć z procesów sandboxowanych, a następnie pilnie aktualizować urządzenia.


Krótka definicja techniczna

CVE‑2025‑43300 to out‑of‑bounds write w frameworku ImageIO prowadzący do korupcji pamięci podczas parsowania złośliwego obrazu. Wektor ataku jest sieciowy (np. treści w komunikatorach, podgląd miniatur, przeglądarka/QuickLook), a wyzwolenie może następować bez pełnej interakcji użytkownika w określonych przepływach, jednak oficjalny wektor CVSS NVD oznacza UI:R. Błąd został naprawiony „poprawioną kontrolą zakresów”.


Gdzie występuje / przykłady platform

  • iOS / iPadOS: poprawki w 18.6.2 (20 VIII 2025), backporty: 16.7.12 i 15.8.5 (15 IX 2025), 17.7.10 (20 VIII 2025).
  • macOS: Sequoia 15.6.1 / Sonoma 14.7.8 / Ventura 13.7.8 (20 VIII 2025).
  • CISA KEV: luka dodana 21 VIII 2025 (termin dla agencji federalnych: 11 IX 2025).
  • Konsekwencje dla SOC: dotyczy stacji macOS oraz urządzeń iOS/iPadOS w BYOD/COPE, MDM i środowiskach hybrydowych (M365/Slack/WhatsApp jako nośnik obrazów). (Łańcuchy ataków z WhatsApp CVE‑2025‑55177 były publicznie raportowane).

Szczegółowy opis techniki (jak działa, cele, skuteczność)

ImageIO to systemowy framework odpowiedzialny za dekodowanie/miniaturyzację wielu formatów (w tym RAW/DNG). Błąd dotyczy ścieżki dekodowania — w analizach poprawek wskazywano na komponenty RawCamera i JPEG Lossless w DNG; naprawa polega na dołożeniu warunków granicznych (bounds check), co sugeruje klasyczne przepisanie poza zaalokowanym buforem przy niespójności metadanych vs strumień JPEG‑L. Taki prymityw bywa szczególnie cenny, bo może prowadzić do RCE w kontekście procesu przetwarzającego obraz (np. QuickLook* lub serwisy komunikatora). Apple odnotował „ekstremalnie wyrafinowany atak” na wąską grupę celów; niezależne raporty prasy branżowej potwierdzają łańcuchy z udziałem WhatsApp (oddzielna CVE po stronie aplikacji).


Artefakty i logi

Źródło / PlatformaArtefakt / LogCo obserwowaćPrzykład/Id
macOS Unified Loggingprocess == "QuickLookUIService" / QuickLookSatellite / ThumbnailsAgentcrashe/EXC_BAD_ACCESS wokół parsowania obrazu; korelować z otwarciem/miniaturą pliku .dnglog show --last 1h --predicate 'process CONTAINS "QuickLook" AND (eventMessage CONTAINS "EXC_BAD_ACCESS" OR eventMessage CONTAINS "abort")'
macOS CrashReporter~/Library/Logs/DiagnosticReports/*.crashsygnatury KERN_INVALID_ADDRESS dla QuickLook*/aplikacji wyzwalającejWpisy „Exception Type: EXC_BAD_ACCESS (SIGSEGV)” w czasie otwarcia/preview DNG.
Quick Look cache (forensics)/private/var/folders/.../C/com.apple.QuickLook.thumbnailcache (index.sqlite / thumbnails.data)ślady miniatur plików przetwarzanych przez QuickLookUwaga: dostęp ograniczony od Mojave; nadal użyteczne w analizie powłamaniowej.
iOS sysdiagnose/Unified Logszrzuty AUL/sysdiagnoseanomalia w logach ImageIO/QuickLook w oknie atakuMetodyka akwizycji AUL/sysdiagnose do IR.
EDR telemetry (macOS/iOS)Process/File/Crash/Networksekwencja: plik .dng → crash QuickLook*/aplikacji → outbound z procesu sandboxOgólna metodyka korelacji (proces/plik/sieć).
M365 Defender (AH)DeviceCrashEvents/DeviceProcessEvents/DeviceFileEventszdarzenia z hostów macOS (iOS jeśli wspierane przez MDM/defender)Wzorce zapytań w sekcji 7.
CloudTrail[nie dotyczy] (luka kliencka na Apple OS)
K8s audit / ESXi[nie dotyczy]
M365 Audit (Unified Audit Log)[nie dotyczy]

Detekcja (praktyczne reguły)

Sigma (macOS, proces crash + korelacja z DNG)

title: macOS QuickLook/ImageIO Crash After DNG Handling (CVE-2025-43300 Lead)
id: 4a1e2a2d-3f2d-4e05-9f60-ql-dng-crash
status: experimental
description: Detects crashes of QuickLook*/ImageIO-related processes shortly after handling .dng images (possible exploitation attempt of CVE-2025-43300)
author: Badacz CVE
date: 2025/11/11
references:
  - https://support.apple.com/en-us/124925
  - https://nvd.nist.gov/vuln/detail/CVE-2025-43300
logsource:
  product: macos
  category: process_crash
detection:
  sel_proc:
    Image|endswith:
      - "/QuickLookUIService"
      - "/QuickLookSatellite"
      - "/com.apple.quicklook.ThumbnailsAgent"
  sel_msg:
    Message|contains:
      - "EXC_BAD_ACCESS"
      - "SIGSEGV"
  near_file:
    TargetFilename|endswith: ".dng"
  timeframe: 5m
  condition: sel_proc and sel_msg and near_file
fields:
  - Image
  - ParentImage
  - TargetFilename
  - Message
  - CrashType
falsepositives:
  - Uszkodzone/niestandardowe pliki DNG z aparatów
  - Znane błędy QuickLook (wysokie CPU/mem)
level: high
tags:
  - attack.t1203
  - attack.t1658

Splunk (SPL)

Crash + korelacja z DNG w oknie 5 min

(index=edr OR index=os) (sourcetype=mac:crashreporter OR sourcetype=mac:unifiedlog)
(process_name="QuickLookUIService" OR process_name="QuickLookSatellite" OR process_name="com.apple.quicklook.ThumbnailsAgent")
("EXC_BAD_ACCESS" OR "SIGSEGV" OR "KERN_INVALID_ADDRESS")
| eval _time_crash=_time
| join type=inner host
    [ search index=edr sourcetype=mac:file (file_path="*.dng" OR file_name="*.dng")
      | bin _time span=5m
      | stats earliest(_time) as first_seen by host file_path process_name ]
| where abs(_time_crash - first_seen) <= 300
| table _time host process_name file_path Message

KQL (Microsoft 365 Defender, Advanced Hunting)

let crashWin = 5m;
let crashes = DeviceCrashEvents
| where OSPlatform == "macOS"
| where ProcessName in~ ("QuickLookUIService","QuickLookSatellite","com.apple.quicklook.ThumbnailsAgent")
| where CrashType has_any ("EXC_BAD_ACCESS","SIGSEGV","KERN_INVALID_ADDRESS")
| project DeviceId, CrashTime=Timestamp, ProcessName, CrashType;

let dng = DeviceFileEvents
| where OSPlatform == "macOS"
| where FileName endswith ".dng"
| project DeviceId, FileTime=Timestamp, FileName, FolderPath, InitiatingProcessFileName;

crashes
| join kind=innerunique (dng) on DeviceId
| where CrashTime between (FileTime .. FileTime + crashWin)
| project CrashTime, DeviceId, ProcessName, CrashType, FileName, FolderPath, InitiatingProcessFileName
| order by CrashTime desc

AWS CloudTrail / CloudWatch (zapytanie)

[brak danych / nie dotyczy] — luka dotyczy endpointów Apple, nie usług AWS.

Elastic EQL (endpoint)

sequence by host.id with maxspan=5m
  [file where file.extension == "dng" and
     process.name in ("IMTransferAgent","Messages","Safari","Finder")]
  [process where process.name in ("QuickLookUIService","QuickLookSatellite","com.apple.quicklook.ThumbnailsAgent")
     and (event.action == "crashed" or message like "*EXC_BAD_ACCESS*" or message like "*SIGSEGV*")]

Źródła kontekstowe: Apple advisories; ATT&CK T1203/T1658; Unified Logging/QuickLook procesy.


Heurystyki / korelacje

  • Łańcuch czasowy: pojawienie się nowego .dng (z komunikatora/WWW/preview) → crash QuickLook*/aplikacji → nietypowy ruch sieciowy z procesu sandbox (np. krótkie połączenia TLS do świeżych domen).
  • Artefakty miniatur: świeże wpisy w Quick Look cache powiązane z plikiem, nawet jeśli został usunięty.
  • Kampanie łańcuchowe: jeśli w telemetrii widać WhatsApp/Messages poprzedzające crash oraz aktualizacje łatające CVE‑2025‑55177, podnieś priorytet incydentu.

False positives / tuning

  • Uszkodzone lub nietypowe DNG z aparatów/oprogramowania RAW mogą powodować crashe QuickLook bez intencji atakującego. Ogranicz reguły do korelacji DNG + crash + źródło z sieci/komunikatora.
  • Znane problemy wydajnościowe QuickLook (wysokie CPU/awarie) mogą generować szum — filtruj po rozszerzeniu .dng i wąskim oknie czasowym.

Playbook reagowania (SOC/IR)

  1. Triage & isolacja: odseparuj urządzenie (macOS/iOS) od sieci. Zanotuj wersję OS i poziom łatek.
  2. Zbierz dowody:
    • macOS: log collect --last 2h --output ~/suspect.logarchive oraz ostatnie .crash dla QuickLook/aplikacji.
    • iOS: wywołaj sysdiagnose zgodnie z procedurą IR/MDM i zabezpiecz backup.
  3. Łańcuch zdarzeń: skorelkuj plik .dng (DeviceFileEvents/EDR) z crash (DeviceCrashEvents) i ruch sieciowy procesu.
  4. Eradykacja: usuń/freeze nośnik (wiadomość/załącznik), zablokuj domeny IOC jeśli są znane.
  5. Remediacja: aktualizuj do wersji zawierających poprawkę (poniżej) i wymuś update przez MDM.
  6. Hunt wsteczny (30–90 dni): wyszukaj sekwencje DNG → crash QuickLook; sprawdź skrzynki/komunikatory osób wysoko‑profilowych.
  7. Raportowanie: jeśli masz przesłanki łańcucha z WhatsApp, oznacz incydent jako high‑confidence targeted i eskaluj do CSIRT.

Przykłady z kampanii / case studies

  • Apple: w opisach łatek firma wskazała na wysoce wyrafinowany atak na wybrane osoby.
  • CISA KEV: CVE dodane 21 VIII 2025 (patch compliance dla instytucji federalnych do 11 IX 2025).
  • Media / analizy: doniesienia o łańcuchu z CVE‑2025‑55177 (WhatsApp) oraz backportach poprawek przez Apple.
  • Reverse engineering/patche: analiza Quarkslab wskazuje na ścieżkę DNG + JPEG Lossless (RawCamera) i dodane sprawdzenia granic. (Używaj do zrozumienia ryzyka, nie do ofensywy).

12) Lab (bezpieczne testy)

Tylko bezpieczne środowisko testowe / brak exploitów. Celem jest weryfikacja telemetrii i reguł.

  1. Próbki DNG (nieszkodliwe): pobierz legalne przykładowe DNG z publicznych datasetów (np. strony producentów aparatów).
  2. macOS — generowanie miniatur:
    • qlmanage -p ~/Samples/*.dng (podgląd) oraz log stream --style syslog --predicate 'process CONTAINS "QuickLook"' — weryfikuj, że pipeline telemetryczny widzi akcję. (Apple Developer)
  3. Korelacja w SIEM: odtwórz zapytania z sekcji 7 i sprawdź, czy pojawiają się zdarzenia File→Process/Crash (bez crasha, ale z wejściem i logami).
  4. iOS (MDM): dostarcz nieszkodliwy obraz .dng do urządzenia testowego (np. przez AirDrop/MDM Content Push), zbierz sysdiagnose i sprawdź logi ImageIO/QuickLook. (pat_h/to/file)

Mapowania (Mitigations, Powiązane techniki)

Mitigations (ATT&CK):

  • M1051 – Update Software: wymuszaj szybkie wdrożenie wersji z poprawką.
  • M1040 – Behavior Prevention on Endpoint: reguły EDR blokujące anomalię decode/parserów obrazów.
  • M1031 – Network Intrusion Prevention: sygnatury/heurystyki na C2 po udanym wyzwoleniu.

Powiązane techniki:

  • T1203 / T1658 (egzekucja), T1189 (wejście przez WWW) / T1566 (dostarczenie w wiadomości), w zależności od scenariusza.

Źródła / dalsza lektura

  • Apple advisories: iOS/iPadOS 18.6.2 (20 VIII 2025); macOS Sequoia 15.6.1, Sonoma 14.7.8, Ventura 13.7.8; iPadOS 17.7.10; backporty 16.7.12 i 15.8.5 (15 IX 2025). (Apple Support)
  • NVD/CVE details (CVSS/KEV/chronologia): (CVE Details)
  • MITRE ATT&CK: T1203 (Enterprise), T1658 (Mobile), wersjonowanie v18.0. (MITRE ATT&CK)
  • Opis kampanii/łańcucha z WhatsApp: The Hacker News (backport + łańcuch CVE‑2025‑55177). (The Hacker News)
  • Analiza techniczna patcha/ścieżki DNG/JPEG‑L: Quarkslab. (Quarkslab Blog)
  • Kontekst ImageIO/0‑click powierzchni parsowania: badania o ImageIO/QuickLook i Unified Logging. (googleprojectzero.blogspot.com)

Checklisty dla SOC / CISO (krótko)

SOC (operacyjne):

  • Czy SIEM/EDR ma reguły z sekcji 7 (crash QuickLook*/ImageIO + .dng)?
  • Czy korelujesz zdarzenia plikowe .dng z procesami QuickLook*/aplikacją w oknie ≤5 min?
  • Czy włączono hunting retrospektywny 30–90 dni dla sekwencji DNG → crash → sieć?
  • Czy MDM wymusza aktualizacje do wersji z poprawką?

CISO (strategiczne):

  • SLA patchowania Apple OS zredukowane <14 dni dla VIP/HTA.
  • Polityka monitoringu komunikatorów (telemetria endpointowa) dla załączników obrazów.
  • Testy tabletop dot. 0‑day/0‑interaction w kanałach mobilnych.
  • Przegląd pokrycia ATT&CK: T1203/T1658 + mitigacje M1051/M1040/M1031.

Rekomendacja: potraktować CVE‑2025‑43300 jako priorytet krytyczny na urządzeniach VIP i w zespołach wysokiego ryzyka, wdrożyć aktualizacje i utrzymywać reguły detekcji oparte na sekwencji zdarzeń, nie na pojedynczym sygnale.

CVE-2025-55177 — WhatsApp (iOS/macOS): niepełna autoryzacja komunikatów synchronizacji urządzeń połączonych

TL;DR

CVE‑2025‑55177 to błąd niepełnej autoryzacji w mechanizmie „Linked devices” WhatsAppa (iOS/macOS), który pozwalał niepowiązanemu napastnikowi wymusić przetwarzanie treści spod dowolnego URL na urządzeniu ofiary. Sam w sobie ma umiarkowane CVSS (5.4), ale w łańcuchu z iOS/macOS ImageIO (CVE‑2025‑43300) mógł prowadzić do zero‑click RCE i instalacji spyware w silnie ukierunkowanych kampaniach. Zalecane: aktualizacja WhatsApp ≥ 2.25.21.73 (iOS) / 2.25.21.78 (Business iOS, Mac), włączenie Lockdown Mode dla użytkowników wysokiego ryzyka, przegląd urządzeń połączonych, telemetria sieciowa dla procesu WhatsApp.


Krótka definicja techniczna

Luka wynika z CWE‑863: Incorrect Authorization – niekompletne sprawdzenia uprawnień dla komunikatów synchronizacji urządzeń połączonych w WhatsApp. Skutkiem było wywołanie przez napastnika przetwarzania zdalnej zawartości (arbitrary URL) na urządzeniu ofiary, co w praktyce umożliwiało „podrzucenie” potencjalnie szkodliwej treści parserom systemowym (np. ImageIO).


Gdzie występuje / przykłady platform

  • iOS/iPadOS: WhatsApp < 2.25.21.73, WhatsApp Business < 2.25.21.78 (iPhone/iPad).
  • macOS: WhatsApp < 2.25.21.78.
  • Inne środowiska (Windows, AD, AWS, Azure, GCP, K8s, ESXi, M365): brak bezpośredniego wpływu; obserwacje i detekcje mogą jednak korzystać z SIEM/XDR w tych domenach (np. Microsoft Defender XDR, Elastic). [brak natywnego telemetry w CloudTrail/K8s/M365 dla tej luki]

Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)

Mechanizm Linked devices w WhatsApp umożliwia synchronizację danych czatu między urządzeniem głównym a urządzeniami wtórnymi. W CVE‑2025‑55177 brakowało pełnej autoryzacji wiadomości synchronizacyjnych, przez co osoba niepowiązana mogła spowodować, że klient pobrał/przetworzył treść z arbitralnego URL. W połączeniu z CVE‑2025‑43300 (ImageIO) – zero‑day w parserze obrazów Apple – przetworzona treść mogła wyzwolić korupcję pamięci i wykonanie kodu bez interakcji użytkownika (zero‑click), co zaobserwowano w kampanii ukierunkowanej na ograniczoną liczbę ofiar (≤200). Skuteczność wynika z połączenia: (1) braku UI (brak kliknięcia), (2) „legitymizacji” ruchu przez aplikację zaufaną oraz (3) łańcuchowania z podatnością systemową.


Artefakty i logi

Źródło / ArtefaktPlatformaPrzykład pól/EIDCo szukaćŚcieżka/Notatka
Unified Logs (OSLog)macOSprocess, eventMessage, subsystemWejścia procesu WhatsApp tuż przed crash/alertem, wzmianki o ImageIO, nietypowe URLPrzegląd przez Console.app lub log show; crashy szukaj w DiagnosticReports.
Crash ReportsmacOSRaport .crashCrashe procesu WhatsApp z ramkami ImageIO/CFNetwork~/Library/Logs/DiagnosticReports/ oraz /Library/Logs/DiagnosticReports/.
sysdiagnose / logarchiveiOS/macOSlogarchiveChronologia zdarzeń WhatsApp/CFNetwork, domeny zdalneGenerowanie sysdiagnose i analiza system_logs.logarchive.
Microsoft Defender XDRmacOS/iOS (MTD)DeviceNetworkEvents (RemoteUrl, InitiatingProcessFileName)Połączenia WhatsApp do domen spoza allowlisty (np. *.whatsapp.com/.net, *.fbcdn.net, *.facebook.com)Schemat Advanced Hunting.
Elastic / ECSmacOSevent.category: network, process.name, destination.domainNietypowe domeny pochodzące od procesu WhatsAppEQL/Detection rules.
MDM (Jamf/itd.)iOSinwentarz wersji appWersje < 2.25.21.73/78Procedury zbierania sysdiagnose / inwentarz aplikacji.
CloudTrail / K8s audit / M365Nie dotyczy bezpośrednio (aplikacja kliencka na iOS/macOS)[brak danych / poza zakresem]

Detekcja (praktyczne reguły)

Uwaga: reguły są defensywne i mają charakter wzorców do tuningu pod własne źródła logów; nie opisują sposobu nadużycia.

Sigma

title: WhatsApp connects to non-owned domains (macOS)
id: 5e7f6c7a-1b0b-4b1a-a1c3-WhatsApp-NonOwnedDomains
status: experimental
description: Detects WhatsApp initiating network connections to domains outside known Meta/WhatsApp CDNs which may indicate CVE-2025-55177 abuse chain.
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2025-55177
  - https://www.whatsapp.com/security/advisories/2025
logsource:
  category: network_connection
  product: macos
detection:
  selection:
    ProcessName|contains:
      - "WhatsApp"
  filter_allowed_domains:
    DestinationDomain|endswith:
      - ".whatsapp.com"
      - ".whatsapp.net"
      - ".fbcdn.net"
      - ".facebook.com"
  condition: selection and not filter_allowed_domains
fields:
  - DestinationIp
  - DestinationPort
  - DestinationDomain
  - ProcessName
level: medium
tags:
  - attack.T1658
  - attack.T1203

Wymagane dopasowanie pól do źródeł w Twoim SIEM; logsource i pola zgodne z konwencją Sigma.

Splunk (SPL)

index=endpoint OR index=network
| eval pname=coalesce(process_name, process, Image, InitiatingProcessFileName)
| search pname="WhatsApp" OR pname="WhatsApp Helper"
| eval domain=coalesce(dest_domain, DestinationHostname, url, RemoteUrl)
| where NOT (like(domain, "%.whatsapp.com") OR like(domain, "%.whatsapp.net")
             OR like(domain, "%.fbcdn.net") OR like(domain, "%.facebook.com"))
| stats values(domain) as domains, dc(domain) as uniq by host, pname, dest_ip, dest_port
| where uniq>0

KQL (Microsoft Defender XDR – Advanced Hunting)

DeviceNetworkEvents
| where InitiatingProcessFileName in~ ("WhatsApp", "WhatsApp Helper")
| where isnotempty(RemoteUrl)
| where not(
    RemoteUrl endswith ".whatsapp.com" or
    RemoteUrl endswith ".whatsapp.net" or
    RemoteUrl endswith ".fbcdn.net" or
    RemoteUrl endswith ".facebook.com")
| summarize count(), make_set(RemoteUrl, 10) by DeviceName, bin(Timestamp, 1h)

Pola i tabela zgodne z dokumentacją DeviceNetworkEvents.

CloudTrail query (AWS CLI/CloudWatch)

Nie dotyczy bezpośrednio. Jeśli jednak Twoja organizacja loguje ruch proxy do CloudWatch (np. ALB/CloudFront), zastosuj CloudWatch Logs Insights dla dzienników HTTP, filtrując UA/hosty procesu WhatsApp — przykład do adaptacji:

fields @timestamp, @message
| filter @message like /WhatsApp/ and not @message like /whatsapp\.com|whatsapp\.net|fbcdn\.net|facebook\.com/
| sort @timestamp desc
| limit 100

Elastic / EQL

network where
  process.name == "WhatsApp" and
  not (destination.domain matches "*.whatsapp.com" or
       destination.domain matches "*.whatsapp.net" or
       destination.domain matches "*.fbcdn.net" or
       destination.domain matches "*.facebook.com")

Składnia i kontekst EQL wg dokumentacji Elastic.


Heurystyki / korelacje

  • Sekwencja czasowa: (a) nietypowe połączenie WhatsApp → obca domena → (b) crash/restart aplikacji lub wpisy ImageIO/CFNetwork → (c) ostrzeżenia MTD/XDR nt. anomalii. Koreluj w oknie ±5 min.
  • Kontekst użytkownika: ofiary o profilu wysokiego ryzyka (dziennikarze, NGO, VIP) – priorytet IR. (zero‑click, wysokie TTP APT/komercyjny spyware).
  • Wersje aplikacji/OS: detekcja urządzeń z wersjami poniżej bezpiecznych buildów WhatsApp i OS‑ów z CVE‑2025‑43300 przed poprawką.

False positives / tuning

  • Legalne media/CDN’y inne niż .whatsapp. / .fbcdn. mogą generować ruch (np. podgląd linków, załączniki) — dostosuj allowlistę do telemetrii.
  • Środowiska z TLS inspection / proxy: domena docelowa może być zastąpiona domeną proxy — filtruj po SNI/http_host w logach L7.
  • Aplikacje towarzyszące (np. komponenty WebKit Network/Helper na macOS) mogą mieć inne nazwy procesu — rozszerz listę InitiatingProcessFileName.
  • Brak crashy nie wyklucza próby — atak może nie trafić w podatny parser lub warunki wyścigu.

Playbook reagowania (IR)

  1. Triage i ograniczenie ryzyka
    • Zidentyfikuj urządzenia z WhatsApp < 2.25.21.73 (iOS) / < 2.25.21.78 (Business iOS, Mac). Wymuś aktualizację.
    • Rozważ Lockdown Mode dla użytkowników wysokiego ryzyka (iPhone/iPad/Mac).
    • W WhatsApp: przegląd i usunięcie nieznanych urządzeń połączonych (Linked devices).
  2. Zachowanie materiału dowodowego
    • Na iOS: wygeneruj sysdiagnose (czas, data) i zabezpiecz logarchive.
    • Na macOS: zarchiwizuj Crash Reports i Unified Logs związane z WhatsApp/ImageIO.
  3. Łowy zagrożeń
    • Uruchom reguły z sekcji 7 w XDR/SIEM; skoreluj z domenami, które nie należą do Meta/WhatsApp.
  4. Eradykacja i odtworzenie
    • Aktualizacje OS ze ścieżki CVE‑2025‑43300 (iOS/iPadOS/macOS), reboot.
    • Zresetuj sesje, odśwież tokeny push, rotuj klucze E2E (wylogowanie i ponowne sparowanie urządzeń) — zgodnie z polityką prywatności/ryzyka.
  5. Komunikacja
    • Poinformuj użytkowników o incydencie i konieczności aktualizacji; rozważ noty do zespołu prawnego/PR przy potencjalnej ingerencji spyware.

Przykłady z kampanii / case studies

  • Eksploatacja łańcuchowa: WhatsApp (CVE‑2025‑55177) → Apple ImageIO (CVE‑2025‑43300) → zero‑click na iOS/macOS; ≤200 celów globalnie, profil wysokiego ryzyka.
  • Potwierdzenie KEV (CISA): luka dodana do Known Exploited Vulnerabilities 2025‑09‑02.
  • Doniesienia branżowe: vendor advisories i analizy potwierdzają użycie luki w wysoko ukierunkowanych atakach z łańcuchowaniem do CVE‑2025‑43300.

Lab (bezpieczne testy) — przykładowe komendy

Wyłącznie w środowisku testowym / bez symulacji eksploitu. Celem jest weryfikacja widoczności i reguł.

macOS

# Sprawdź wersję aplikacji (App Store build)
mdls -name kMDItemVersion "/Applications/WhatsApp.app"

# Szybki podgląd aktywności procesu w logach z ostatnich 2h
log show --last 2h --predicate 'process == "WhatsApp"' --style syslog | head

# Wykaz bieżących połączeń sieciowych aplikacji
sudo lsof -i -a -c WhatsApp

iOS (bez jailbreak)

  • Wygeneruj sysdiagnose (kombinacja przycisków zg. z instrukcją Apple), zgraj i załaduj system_logs.logarchive do narzędzia analitycznego.

XDR/SIEM

  • Uruchom zapytania z sekcji 7 i zweryfikuj, że połączenia do dozwolonych CDN nie generują alertów (tuning allowlisty).

Mapowania (Mitigations, Powiązane techniki)

Mitigations (ATT&CK):

  • M1051 — Update Software: aktualizacje WhatsApp i OS (iOS/iPadOS/macOS).
  • M1042 — Disable or Remove Feature or Program: ogranicz lub wyłącz „Linked devices” dla grup wysokiego ryzyka (polityka MDM).
  • M1021 — Restrict Web‑Based Content: filtrowanie URL/SNI, SSL inspection z ostrożnością, polityki DLP dla mediów.

Powiązane techniki (do rozważenia w polu):

  • T1071.001 — Web Protocols (C2/Delivery przez HTTP/HTTPS) dla etapów późniejszych lub alternatywnych ścieżek.

Źródła / dalsza literatura

  • NVD — CVE‑2025‑55177 (opis, CVSS CNA 5.4, CWE‑863, KEV): „Incomplete authorization of linked device synchronization messages…”. (NVD)
  • CVE.org — rekord (Meta CNA). (CVE)
  • WhatsApp Security Advisories 2025 (wersje naprawcze; łańcuch z CVE‑2025‑43300). (whatsapp.com)
  • CISA KEV (dodanie do katalogu 2025‑09‑02). (CISA)
  • Apple / CVE‑2025‑43300 (ImageIO, out‑of‑bounds write; backporty): wsparcie i NVD. (Apple Support)
  • Unit 42 (kontekst łańcuchów zero‑click); The Hacker News, SecurityWeek (streszczenia). (Unit 42)
  • Apple forensics i logi: sysdiagnose / logarchive / Crash Reports (ścieżki). (Apple Podcasts)
  • ATT&CK Mobile/Enterprise (T1658, T1664, T1203; v18). (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC:

  • Wdrożone reguły z sekcji 7 (XDR/SIEM) + allowlista domen Meta/WhatsApp.
  • Raport urządzeń z wersjami WhatsApp < 2.25.21.73/78 i OS bez łatki CVE‑2025‑43300.
  • Procedura zbierania sysdiagnose/logarchive i Crash Reports gotowa na żądanie IR.
  • Korelacje: połączenie WhatsApp → obca domena + wpisy ImageIO/crash w ±5 min.

CISO:

  • Polityka MDM: wymuszona aktualizacja WhatsApp/OS; Lockdown Mode dla wysokiego ryzyka.
  • Przegląd i ograniczenie Linked devices w organizacji (edukacja + kontrola).
  • Potwierdzona zgodność z CISA KEV (SLA na patching).
  • Test stołowy: scenariusz zero‑click na urządzeniach mobilnych (triage + komunikacja).

QNAP łata luki wykorzystane na Pwn2Own Ireland 2025: co musisz zaktualizować i jak zabezpieczyć NAS

Wprowadzenie do problemu / definicja luki

QNAP opublikował pakiet poprawek dla ~24 podatności w swoim portfolio, z czego 7 to 0-daye zademonstrowane podczas Pwn2Own Ireland 2025 (kategoria NAS/SoHo). W grze są zarówno systemy QTS/QuTS hero, jak i aplikacje o wysokich uprawnieniach: HBS 3 (Hybrid Backup Sync), Malware Remover oraz Hyper Data Protector. Skutki obejmują zdalne wykonanie kodu (RCE), ujawnienie informacji, ominięcie mechanizmów bezpieczeństwa oraz DoS. Aktualizacje są już dostępne i powinny zostać wdrożone niezwłocznie.


W skrócie

Minimalne wersje naprawcze:

  • QTS: 5.2.7.3297 (build 20251024+)
  • QuTS hero: h5.2.7.3297+ lub h5.3.1.3292+
  • HBS 3: 26.2.0.938+ (CVE-2025-62840, CVE-2025-62842)
  • Malware Remover: 6.6.8.20251023+ (CVE-2025-11837)
  • Hyper Data Protector: 2.2.4.1+ (CVE-2025-59389)

Po aktualizacji QNAP zaleca zmianę wszystkich haseł do kont i usług.


Kontekst / historia / powiązania

Na Pwn2Own Ireland 2025 zaprezentowano szereg łańcuchów ataku na QNAP. Team DDOS wykazał m.in. łańcuch 8 błędów na routerach i NAS-ach QNAP (nagroda 100 tys. USD), a DEVCORE skleił kilka podatności (iniekcje + błąd formatu) zdobywając 40 tys. USD. Summoning Team i badacz Chumy Tsai (CyCraft) pokazali kolejne wektory w aplikacjach backupowych. QNAP opublikował odpowiednie biuletyny bezpieczeństwa i patche.


Analiza techniczna / szczegóły luki

Zakres i klasy podatności (przykładowe):

  • QTS / QuTS hero – zestaw 3 błędów (m.in. iniekcje i format string), umożliwiający RCE / eskalację w określonych warunkach. Naprawione w QTS 5.2.7.3297 i odpowiednich buildach QuTS hero. (Atrybucja: DEVCORE).
  • HBS 3 (Hybrid Backup Sync) – dwa błędy (m.in. w ścieżkach wykonywania zadań backupu/synchronizacji), które w łańcuchach ataku pozwalały na zdalne wykonanie kodu i manipulację treścią kopii (CVE-2025-62840, CVE-2025-62842). Załatane w 26.2.0.938.
  • Malware Remover – krytyczny code injection (CVE-2025-11837); komponent działa z wysokimi uprawnieniami, więc RCE skutkuje przejęciem NAS-a. Patch: 6.6.8.20251023.
  • Hyper Data Protector – krytyczna podatność (CVE-2025-59389) pozwalająca na kompromitację hosta backupu VM; naprawiona w 2.2.4.1.

Dowód eksploatacji na Pwn2Own (fragmenty łańcuchów, nagrody, celowane modele jak TS-453E) został odnotowany w raportach ZDI z poszczególnych dni konkursu.


Praktyczne konsekwencje / ryzyko

  • Zatrucie i sabotaż kopii zapasowych: przejęcie HBS 3 umożliwia modyfikację/wymazywanie danych w repozytoriach off-site (rsync/S3/SMB/WebDAV), co może zniweczyć strategię 3-2-1 i utrudnić odtworzenie po incydencie.
  • Eskalacja uprawnień przez komponenty zaufane: Malware Remover i Hyper Data Protector działają z uprawnieniami systemowymi; ich kompromitacja = pełne RCE i potencjalny lateral movement do hipernadzorców/serwerów wirtualizacji.
  • Brak sygnałów o atakach „in the wild” na moment publikacji, ale historia QNAP pokazuje, że luki w NAS-ach szybko stają się celem grup ransomware/botnetów – dlatego czas reakcji ma krytyczne znaczenie.

Rekomendacje operacyjne / co zrobić teraz

1) Aktualizacja systemu i aplikacji

  • GUI (zalecane):
    Panel sterowania → SystemAktualizacja oprogramowania (QTS/QuTS hero).
    App Center → wyszukaj: HBS 3, Malware Remover, Hyper Data ProtectorUpdate.
    Wersje docelowe: patrz sekcja „W skrócie”.
  • CLI (sprawdzenie wersji QPKG):
# Na QNAP (BusyBox). Odczyt z /etc/config/qpkg.conf
getcfg "HBS 3 Hybrid Backup Sync" QPKG_Ver -f /etc/config/qpkg.conf
getcfg "Malware Remover"          QPKG_Ver -f /etc/config/qpkg.conf
getcfg "Hyper Data Protector"     QPKG_Ver -f /etc/config/qpkg.conf

2) Po aktualizacji – zmień hasła

Zmień hasła do wszystkich kont lokalnych, myQNAPcloud, udziałów i usług (rsync/FTP/SMB/WebDAV), rozważ też rotację kluczy/API używanych przez zadania HBS 3. Rekomendacja producenta po wdrożeniu poprawek.

3) Ogranicz ekspozycję NAS-a

  • Wyłącz bezpośredni dostęp z Internetu (port-forwarding, UPnP).
  • Używaj VPN/ZTN do administracji; reguły QuFirewall: whitelisting IP/Admin, geo-IP, blokada nietypowych portów.

4) Utwardzenie aplikacji backupu

  • HBS 3: stosuj repozytoria WORM/immutable, wersjonowanie, testy odtwarzania (restore drills).
  • Hyper Data Protector: separuj konta serwisowe (najmniejsze uprawnienia), monitoruj logi z zadaniami VM.

5) Monitoring i detekcja (przykładowe sygnały do SIEM)

  • Nietypowe modyfikacje zadań HBS 3 (nagłe zmiany destynacji/S3 bucket).
  • Nowe konta admin lub rotacja haseł poza oknem serwisowym.
  • Wywołania skryptów/system() przez procesy QPKG (próby RCE).

Wskazówka: jeśli nie możesz patchować natychmiast, przynajmniej wyłącz HBS 3/Hyper Data Protector/ekspozycję WAN i odizoluj NAS segmentacją.


Różnice / porównania z innymi przypadkami

  • W odróżnieniu od dawnych, pojedynczych RCE w panelach WWW NAS-ów, tutaj „gorącym” celem są aplikacje backupowe (HBS 3, Hyper Data Protector) – ich kompromitacja daje większą dźwignię: modyfikacja kopii, pivot do hostów wirtualizacji, niszczenie ścieżek odtworzeniowych.
  • Łańcuchy na Pwn2Own (złożone exploity, łączenie iniekcji z błędami formatu/uwierzytelniania) pokazują rosnącą złożoność ataku i wartość testów red team/bug bounty dla dostawców.

Podsumowanie / kluczowe wnioski

  1. Patch first: QTS/QuTS hero + HBS 3 + Malware Remover + Hyper Data Protector do wersji wskazanych powyżej.
  2. Zmień hasła i klucze natychmiast po aktualizacji.
  3. Zamknij ekspozycję WAN i wymuś administrację przez VPN/ZTN.
  4. Zabezpiecz backup (immutability, testy restore, konta o najmniejszych uprawnieniach).
  5. Monitoruj anomalie w zadaniach backupu i logach QPKG.

To nie jest „zwykły” patch Tuesday – dotyczy komponentów, które decydują o przetrwaniu incydentu (backup i odtwarzanie). Działaj od razu.


Źródła / bibliografia

  • SecurityWeek – przegląd poprawek QNAP po Pwn2Own Ireland 2025 (daty, CVE, wersje) (SecurityWeek)
  • QNAP QSA-25-46 – Multiple Vulnerabilities in HBS 3 Hybrid Backup Sync (wersja 26.2.0.938+) (qnap.com)
  • QNAP QSA-25-47 – Vulnerability in Malware Remover (CVE-2025-11837; 6.6.8.20251023+) (qnap.com)
  • QNAP QSA-25-48 – Vulnerability in Hyper Data Protector (CVE-2025-59389; 2.2.4.1+) (qnap.com)
  • ZDI – Pwn2Own Ireland 2025 (wyniki dzienne; potwierdzenie łańcuchów i nagród) (zerodayinitiative.com)

Cl0p publikuje listę ~30 ofiar kampanii na Oracle E-Business Suite. Co wiemy o atakach i jak się bronić

Wprowadzenie do problemu / definicja luki

Grupa powiązana z Cl0p opublikowała na swoim portalu około 30 rzekomych ofiar kampanii wymierzonej w klientów Oracle E-Business Suite (EBS) — popularnego systemu ERP. Na liście wymieniono m.in. Logitech, The Washington Post, Cox Enterprises, Pan American Silver, LKQ Corporation i Copeland. Część podmiotów (np. The Washington Post) potwierdziła naruszenie, większość jednak milczy lub prowadzi dochodzenia wewnętrzne. Źródła branżowe łączą tę falę incydentów z krytyczną podatnością CVE-2025-61882 (CVSS 9.8) w komponencie BI Publisher Integration pakietu EBS, która umożliwia zdalne, nieautoryzowane ataki przez HTTP. Oracle załatał błąd w trybie alarmowym na początku października 2025 r.


W skrócie

  • Atakujący: klaster przestępczy kojarzony z FIN11 i marką Cl0p (ekstorsja + wycieki).
  • Wektor: wykorzystanie luk w Oracle EBS; najbardziej prawdopodobna — CVE-2025-61882 (RCE bez uwierzytelniania) w zakresach wersji 12.2.3–12.2.14.
  • Skala: dziesiątki organizacji; ok. 29 pozycji na stronie Cl0p, wycieki danych u co najmniej 18 z nich (częściowo wieluset-GB/TB).
  • Linia czasu: masowe maile z szantażem od 29 września; łatki Oracle — 4–5 października 2025 r.; kolejne potwierdzenia ofiar w październiku-listopadzie.
  • Status: część firm potwierdziła incydent (np. The Washington Post), inne nie komentują publicznie.

Kontekst / historia / powiązania

Specjaliści Google Threat Intelligence i Mandiant opisali na początku października zmasowaną kampanię ekstorsyjną: do menedżerów spływały e-maile z twierdzeniami o kradzieży danych z ich środowisk EBS. Równolegle Reuters i inne media informowały o kolejnych ofiarach (np. Envoy Air/AA, Harvard), a Oracle potwierdził problem i wydał Security Alert z łatą. SecurityWeek zebrał listę ~30 nazw wskazanych przez Cl0p, podkreślając, że część danych rzeczywiście wygląda na pochodzące z instancji Oracle. Tę kampanię osadzono w modus operandi znanym z wcześniejszych akcji Cl0p (MOVEit, Fortra, Cleo) — presja medialna + publikacja wykradzionych pakietów.


Analiza techniczna / szczegóły luki

CVE-2025-61882 (Oracle E-Business Suite – Concurrent Processing / BI Publisher Integration)

  • Zakres wersji: 12.2.3–12.2.14.
  • Skutki: zdalne przejęcie komponentu (CIA: C/I/A=H, CVSS 9.8), bez uwierzytelniania przez HTTP.
  • Charakter: „easily exploitable”; sprzyja RCE i dostępowi do wrażliwych danych przetwarzanych w EBS.
  • Eksploatacja: raporty wskazują na aktywny exploit przed publikacją poprawki (zero-day).

Uwaga: w doniesieniach pojawia się także druga luka z tej samej „rodziny”, jednak na dziś to CVE-2025-61882 jest jednoznacznie potwierdzone przez Oracle/NVD jako krytyczny wektor RCE.

Prawdopodobny łańcuch ataku (uogólniony)

  1. Skany internetowo dostępnych instancji EBS (typowe ścieżki /OA_HTML/…).
  2. Wykorzystanie CVE-2025-61882 do wykonania kodu w komponentach związanych z BI Publisher/Concurrent Processing.
  3. Utrwalenie (np. web-shell, konto aplikacyjne) i zbieranie danych (eksporty, raporty, zrzuty tabel).
  4. Ekstorsja: kontakt do kadry zarządzającej z żądaniem okupu + groźbą publikacji plików.
  5. Publikacja paczek na stronie Cl0p w razie braku płatności.

Praktyczne konsekwencje / ryzyko

  • Kompromitacja danych ERP: finanse, łańcuch dostaw, HR, logistyka — wysokie ryzyko wtórnych oszustw i fraudów.
  • Zakłócenia operacji: ryzyko zatrzymania procesów (AP/AR, zamówienia, produkcja).
  • Ryzyko prawno-regulacyjne: RODO/PCI/sox — kary administracyjne, obowiązki notyfikacyjne.
  • Efekt łańcuchowy: EBS z reguły integruje się z innymi systemami (ESB, hurtownie danych) — możliwość lateral movement.
  • Ryzyko reputacyjne: Cl0p publikuje duże wolumeny danych (setki GB do TB), co zwiększa presję na zapłatę.

Rekomendacje operacyjne / co zrobić teraz

1) Patching i konfiguracja

  • Natychmiast zastosuj Security Alert dla CVE-2025-61882 (EBS 12.2.3–12.2.14). Zweryfikuj, że poprawka została wdrożona na wszystkich węzłach (apps tier/db tier).
  • Ogranicz ekspozycję EBS do internetu: jeśli to możliwe, dostęp wyłącznie przez VPN/ZTNA; przeglądarkowy interfejs użytkownika (OA_HTML) nie powinien być publiczny.
  • WAF/Reverse proxy: tymczasowe reguły blokujące nietypowe żądania do endpointów raportowania/BI, rozmiary odpowiedzi i długotrwałe transfery.

2) Detekcja i monitoring (przykładowe reguły)

  • Netflow/Proxy/Firewall – wykrywanie dużych POST/GET do zewnętrznych adresów z hostów EBS:
    • Splunk (prosty szkic): index=proxy OR index=nginx sourcetype=http (uri_path="/OA_HTML/*" OR cs_uri_stem="/OA_HTML/*") | stats sum(bytes_out) as out, values(cs_uri_query) as q by src_ip, uri_path, http_method | where out > 500000000 /* >500MB dziennie */
  • System – nietypowe procesy JVM/Java z parametrami uruchamianymi przez użytkowników aplikacyjnych:
    • Linux (ad-hoc): ps -ef | egrep 'java|weblogic' | egrep -i 'curl|wget|nc|bash -i|sh -i'
  • Pliki aplikacyjne – poszukiwanie web-shelli w katalogach serwisujących EBS: find $INST_TOP/ora/10.1.3/j2ee -type f -mtime -30 -size +50k \ -iname "*.jsp" -exec grep -H -E "(Runtime|getRuntime|ProcessBuilder)" {} \;
  • Logi HTTP – anomalie w BI Publisher/Concurrent Processing (duże odpowiedzi, 5xx po dużych POST, nagły skok 2xx): awk '{print $7, $9, $10}' access_log | grep -E "BIPublisher|Concurrent|OA_HTML" | sort | uniq -c | sort -nr | head

(Powyższe to wzorce poszukiwań – dostosuj do swojej topologii i ścieżek w danym wydaniu EBS.)

3) Łagodzenie skutków i IR

  • Załóż kompromitację dla instancji nienaprawionych przed 4–5 października 2025 r.; przeprowadź triage pamięci (Volatility/AVML) i przegląd harmonogramów (Concurrent Requests), kont oraz pakietów raportowych.
  • Rotacja haseł/kd. integracyjnych i przegląd SSO jeśli EBS zintegrowany jest z IdP.
  • Segmentacja: izoluj serwery apps/db do czasu zakończenia dochodzenia, wstrzymaj zadania eksportów masowych.
  • Zgłoszenia regulacyjne: oceń zakres danych wg jurysdykcji (np. RODO) i czasów detekcji.

4) Twardnienie (hardening) „na jutro”

  • Minimalizacja powierzchni: odłącz zbędne moduły/servlety, wymuś TLS 1.2+, nagłówki bezpieczeństwa.
  • Kontrola egress: EBS zwykle nie potrzebuje otwartego ruchu wychodzącego do internetu — egres pod ścisłą allowlistą.
  • Kopia zapasowa planu odtworzeniowego: test odtworzenia offline; backupy szyfrowane i odseparowane (immutability).

Różnice / porównania z innymi przypadkami

  • MOVEit/Fortra/Cleo vs Oracle EBS: podobny model ekstorsji (nacisk medialny, tablica wstydu, hurtowe wycieki). Różnica: zamiast podatności w menedżerach transferu plików, celem jest system ERP — więc jakość i kontekst danych (finanse, logistyka) mają zwykle wyższą wartość operacyjną dla przestępców i większy impakt biznesowy. SecurityWeek wskazuje, że wcześniejsze skojarzenia Cl0p-FIN11 tłumaczą użycie brandu Cl0p jako „frontu” kampanii.

Podsumowanie / kluczowe wnioski

  • CVE-2025-61882 w Oracle EBS to krytyczna luka RCE, realnie wykorzystywana w kampanii ekstorsyjnej. Łatka od Oracle jest dostępna — patchuj natychmiast.
  • Lista Cl0p obejmuje ~29 organizacji, a część z nich potwierdziła incydenty (np. The Washington Post). Nie zakładaj, że „to tylko straszak”.
  • Traktuj EBS jak system krytyczny: zamknięcie ekspozycji internetowej, kontrola egresu, ciągły monitoring i „assume breach” dla okien bez łatek z końca września/początku października 2025 r.

Źródła / bibliografia

  1. SecurityWeek – lista ~30 ofiar i kontekst kampanii Cl0p (10 listopada 2025). (SecurityWeek)
  2. Reuters – The Washington Post potwierdza naruszenie związane z Oracle EBS (6 listopada 2025). (Reuters)
  3. Oracle Security Alert – CVE-2025-61882 (EBS) – opis i łatki. (Oracle)
  4. NVD – karta podatności CVE-2025-61882 (CVSS 9.8, RCE bez uwierzytelniania). (NVD)
  5. Google Threat Intelligence – wpis o zero-day w Oracle EBS i kampanii ekstorsyjnej (9 października 2025). (Google Cloud)

Popularna biblioteka JavaScript expr-eval z krytyczną luką RCE (CVE-2025-12735)

Wprowadzenie do problemu / definicja luki

W bibliotece expr-eval (popularny parser i ewaluator wyrażeń matematycznych w JavaScript) ujawniono krytyczną podatność pozwalającą na zdalne wykonanie kodu (RCE) po przekazaniu złośliwego obiektu „kontekstu” do funkcji evaluate(). Problem został oznaczony jako CVE-2025-12735, a według oceny CISA (CVSS 3.1) ma wagę 9.8 – CRITICAL. Luka dotyczy zarówno oryginalnego pakietu expr-eval, jak i aktywnie utrzymywanego forka expr-eval-fork (naprawa dostępna od wersji 3.0.0).

W skrócie

  • Co: RCE poprzez złośliwe funkcje w obiekcie kontekstu przekazywanym do Parser.evaluate().
  • Zakres: expr-eval (oryginalny projekt) i expr-eval-fork (fork).
  • Nasilenie: CVSS 9.8 (CISA ADP).
  • Status poprawek: stabilna poprawka w expr-eval-fork v3.0.0; dla oryginalnego repo istnieje PR z łatą (#288), ale brak nowego wydania. Rekomendowana migracja do forka 3.0.0+.

Kontekst / historia / powiązania

expr-eval jest powszechnie używany w kalkulatorach webowych, narzędziach edukacyjnych, finansowych oraz – coraz częściej – w systemach NLP/AI, które parsują fragmenty matematyczne z tekstu. Oryginalne repozytorium jest rozwijane nieregularnie; społeczność utrzymuje forka expr-eval-fork, który wcześniej rozwiązywał inne kwestie bezpieczeństwa i utrzymania. CERT-CC i NVD odnotowują, że biblioteka ma setki zależności pośrednich, co zwiększa zasięg oddziaływania podatności.

Analiza techniczna / szczegóły luki

Przyczyna: Funkcja evaluate() przyjmuje obiekt context (zbiór zmiennych i funkcji dostępnych w wyrażeniu). Brak prawidłowej walidacji/ograniczeń umożliwia przekazanie obiektów-funkcji, które parser następnie wywołuje w trakcie ewaluacji. To otwiera drogę do wykonywania niepożądanego kodu – w środowisku Node.js nawet do wywołań systemowych. NVD klasyfikuje problem jako skutkujący przejęciem poufności, integralności i dostępności (C:H/I:H/A:H).

Stan poprawek:

  • expr-eval-fork: wydanie 3.0.0 zawiera allowlist bezpiecznych funkcji, mechanizm rejestracji funkcji użytkownika i testy wymuszające ograniczenia.
  • expr-eval (oryginalne): istnieje Pull Request #288 od CERT-CC z analogiczną łatą; brak potwierdzanej publikacji nowej wersji w npm.

Identyfikatory i doradztwa: CVE-2025-12735, GHSA-jc85-fpwf-qm7x (GitHub Advisory).

Minimalny przykład zagrożonego wzorca (edukacyjnie, bez payloadu)

import { Parser } from 'expr-eval';

// Niebezpieczne: bezkrytyczne przekazywanie "context" z funkcjami od użytkownika
const parser = new Parser();
const expr = parser.parse('customFn(x) + y');

// "context" pochodzi np. z wejścia użytkownika (to błąd!)
const unsafeContext = {
  x: 2,
  y: 3,
  // użytkownik może wstrzyknąć dowolną funkcję
  customFn: (n) => n * 10,
};

console.log(expr.evaluate(unsafeContext));

Wniosek: Sam fakt, że funkcje z kontekstu są wywoływane, stanowi wektor wykonania kodu. W Node.js zamiast nieszkodliwego n * 10 atakujący może próbować odwołań do zasobów środowiska. Naprawa polega na odrzuceniu funkcji z kontekstu, whitelisting i jawnej rejestracji dopuszczalnych funkcji.

Praktyczne konsekwencje / ryzyko

  • Aplikacje serwerowe (Node.js): ryzyko RCE i dostępu do zasobów hosta, w tym plików, poświadczeń czy usług sieciowych. CVSS 9.8 od CISA odzwierciedla pełen kompromis (C/I/A = H).
  • Front-end (przeglądarka): brak bezpośredniego dostępu do systemu, ale możliwość nadużyć (kradzież tokenów, interakcje z API w kontekście użytkownika).
  • Łańcuch dostaw: biblioteka jest zależnością pośrednią w wielu projektach — podatność może „dotrzeć” do Was nawet, jeśli nie importujecie jej wprost.

Rekomendacje operacyjne / co zrobić teraz

1) Szybka weryfikacja zależności

  • SBOM/grep: # npm npm ls expr-eval expr-eval-fork || true # pnpm pnpm ls expr-eval expr-eval-fork || true # yarn yarn why expr-eval || true
  • Skan doradztw: sprawdź GHSA i CVE w pipeline (np. npm audit, GitHub Dependabot).

2) Aktualizacja i pinning

  • Preferowany wariant: natychmiast **migruj do expr-eval-fork3.0.0. npm i expr-eval-fork@^3.0.0 # lub w package.json ustaw: # "overrides": { "expr-eval": "npm:expr-eval-fork@^3.0.0" } Jeśli używacie pakietu, który pośrednio ciągnie expr-eval, rozważcie overrides/resolutions albo zgłoście issue do maintenera.
  • Oryginalny expr-eval: dopóki nie ma wydania z łatą, nie polegajcie na tym pakiecie w kontekście niezaufanego wejścia. PR #288 istnieje, ale brak gwarancji release’u.

3) Dodatkowe twarde zabezpieczenia (defense-in-depth)

  • Blokada funkcji w kontekście: nie przekazuj żadnych funkcji z danych użytkownika; jeśli musisz, stosuj allowlistę i własną fabrykę funkcji.
  • Sandboxing: w Node.js rozważ izolację ewaluacji (np. oddzielny proces/VM, worker_threads, ograniczone uprawnienia).
  • WAF / filtrowanie: ogranicz długość, znaki i słowa kluczowe w wyrażeniach, jeżeli użytkownicy dostarczają stringi do ewaluacji.
  • Logowanie i detekcja anomalii: monitoruj nietypowe wyrażenia i błędy parsera.

4) Testy regresyjne – przykład „bezpiecznego” wzorca po aktualizacji

import { Parser } from 'expr-eval-fork';

// jawna rejestracja dopuszczalnych funkcji
const allowed = {
  abs: Math.abs,
  ceil: Math.ceil,
  floor: Math.floor,
  // ...lista minimalna, bez funkcji dostępowych
};

const parser = new Parser({ functions: allowed });

// Do wyrażenia przekazujemy wyłącznie PRYMITYWY (liczby/napisy/boole)
// i ewentualnie nazwy dopuszczonych funkcji; brak dowolnych obiektów-funkcji
const expr = parser.parse('abs(x) + ceil(y)');
const safeContext = { x: -3.14, y: 2.2 };

console.log(expr.evaluate(safeContext)); // 6

5) Działania w CI/CD

  • Wymuś fail build przy wykryciu expr-eval < bezpiecznych wersji (policy as code).
  • Dodaj overrides/resolutions w monorepo i lockfile maintenance.
  • Publikuj nową wersję swoich bibliotek, aby konsumenci dostali zależność z poprawką (tzw. republish chain).

Różnice / porównania z innymi przypadkami

  • Analogiczne klasy błędów: CWE-94 („Improper Control of Code Generation”) – sytuacje, gdy system pozwala na wstrzyknięcie kodu poprzez „rozszerzalne” mechanizmy (np. eval-like, dynamiczne funkcje, konteksty). W expr-eval problem był subtelny, bo dotyczył wywoływania funkcji z kontekstu, a nie tylko parsowania tekstu. (Por. wpisy doradcze GHSA/NVD.)
  • Różnica do klasycznych XSS/RCE: tu łańcuch dostaw oraz biblioteka „bezpieczna zamiast eval” paradoksalnie stała się wektorem RCE przy niewłaściwej walidacji/konfiguracji.

Podsumowanie / kluczowe wnioski

  • CVE-2025-12735 to krytyczna luka w expr-eval umożliwiająca RCE przez złośliwe funkcje w kontekście evaluate().
  • Najbezpieczniejsza ścieżka: migracja do expr-eval-fork 3.0.0+, pinning i republish bibliotek zależnych.
  • Nawet po aktualizacji stosuj zasadę najmniejszego zaufania wobec wejścia użytkownika i allowlistę funkcji.
  • Zweryfikuj łańcuch zależności – podatność często wchodzi pośrednio.

Źródła / bibliografia

  • BleepingComputer: pierwsze doniesienia, status patchy i rekomendacja migracji do expr-eval-fork 3.0.0. (BleepingComputer)
  • NVD (CVE-2025-12735) – opis, metryki, referencje, CVSS 9.8 wg CISA-ADP. (NVD)
  • CERT-CC Vulnerability Note VU#263614 – opis techniczny, wpływ na projekty AI/NLP, zalecenia. (kb.cert.org)
  • GitHub PR #288 (silentmatt/expr-eval) – propozycja łaty od CERT-CC, status w oryginalnym repo. (GitHub)
  • GitHub Advisory (GHSA-jc85-fpwf-qm7x) – doradztwo bezpieczeństwa. (GitHub)

CISA nakazuje załatomanie zero-day Samsunga (CVE-2025-21042) wykorzystywanego do ataków spyware „LandFall”


Wprowadzenie do problemu / definicja luki

Amerykańska CISA dołączyła do katalogu Known Exploited Vulnerabilities (KEV) krytyczną lukę w urządzeniach Samsung Galaxy – CVE-2025-21042 – i nakazała agencjom federalnym natychmiastowe załatanie floty. Błąd to out-of-bounds write w bibliotece libimagecodec.quram.so, który umożliwia zdalne wykonanie kodu (RCE) na urządzeniach z Androidem 13+ po przetworzeniu specjalnie spreparowanego obrazu. Samsung załatał problem w SMR Apr-2025 Release 1. CISA ustaliła termin naprawy na 1 grudnia 2025 r. w ramach BOD 22-01.

Równolegle zespół Unit 42 opisał kampanię szpiegowską LANDFALL, która wykorzystywała tę lukę poprzez obrazy DNG dostarczane m.in. przez WhatsApp.


W skrócie

  • CVE-2025-21042: błąd zapisu poza buforem w libimagecodec.quram.soRCE po otwarciu/przetworzeniu obrazu (DNG). Łatka: SMR Apr-2025 Release 1.
  • Wykorzystanie w atakach: spyware LANDFALL, dostarczany w zmodyfikowanych plikach DNG (obraz + dołączone archiwum ZIP z komponentami .so).
  • Status CISA: wpis w KEV z datą dodania 10 listopada 2025 i terminem 1 grudnia 2025 na wdrożenie mitigacji/aktualizacji.
  • Zasięg: modele flagowe Galaxy (m.in. S22/S23/S24, Z Fold4/Z Flip4); potencjalne ofiary w Iraku, Iranie, Turcji, Maroku.

Kontekst / historia / powiązania

Unit 42 wskazuje, że próbki złośliwych obrazów DNG pojawiały się w VirusTotal od lipca 2024 r., a kampania trwała miesiącami przed publikacją poprawki w kwietniu 2025 r. Luka została prywatnie zgłoszona do Samsunga jesienią 2024 r., a numer CVE nadano w 2025 r.

CISA ujęła CVE-2025-21042 w KEV i publicznie zaapelowała o szybkie działania naprawcze – zgodnie z praktyką, gdy luka jest aktywnie wykorzystywana. NVD potwierdza krytyczną ocenę (CVSS v3.1 do 9.8 wg NVD) i odniesienia do KEV oraz biuletynu Samsunga.

W tym samym komponencie (libimagecodec.quram.so) Samsung łatał też CVE-2025-21043 we wrześniu 2025 r., również wcześniej obserwowaną „in the wild”. To sugeruje szerszy trend nadużywania parserów RAW/DNG na platformach mobilnych.


Analiza techniczna / szczegóły luki

Wektor wejścia
Atakujący wysyła spreparowany plik DNG (Digital Negative). Podczas parsowania obrazu przez libimagecodec.quram.so dochodzi do zapisu poza buforem i przejęcia przepływu sterowania. W próbkach LANDFALL na końcu DNG dołączono ZIP z komponentami ELF (b.so – loader/backdoor oraz moduł manipulujący politykami SELinux), które po eksploatacji są wyodrębniane i wykonywane.

Warstwa exploita

  • Błąd został naprawiony w SMR Apr-2025 R1 (Samsung Mobile Release).
  • W ocenie NVD: RCE zdalne, często przy minimalnej interakcji użytkownika (w niektórych ścieżkach wystarczy automatyczne przetworzenie miniatury/metadata).

Łańcuch infekcji LANDFALL (skrót)

  1. Dostarczenie obrazu DNG przez komunikator (np. WhatsApp).
  2. Parsowanie → wyzwolenie OOB write w libimagecodec.quram.so.
  3. Rozpakowanie dołączonego ZIP i uruchomienie b.so.
  4. Manipulacja SELinux dla uprawnień/persistencji; telemetryka i exfiltracja (kontakty, SMS, lokalizacja, audio, zdjęcia, logi połączeń).

Praktyczne konsekwencje / ryzyko

  • Zero-click/low-click: w zależności od ścieżki przetwarzania mediów na urządzeniu/wersji aplikacji, exploit może wymagać minimalnej lub zerowej interakcji. Ryzyko dotyczy też miniatur/preview.
  • Zasięg urządzeń: liczne generacje Galaxy na Androidzie 13+; floty BYOD/COPE w organizacjach mogą być podatne do czasu aktualizacji.
  • Skutki incydentu: pełna inwigilacja (mikrofon, geolokacja, pliki), utrata poufności danych służbowych, możliwość wtórnego ruchu C2 i eskalacji.

Rekomendacje operacyjne / co zrobić teraz

1) Natychmiastowe łatanie (priorytet 1)

  • W MDM/EMM wymuś aktualizację do SMR Apr-2025 R1 lub nowszej (docelowo najnowszy SMR dostępny dla danego modelu). Egzekwuj regułę „block non-compliant” dla urządzeń bez poprawki.

2) Twarde zasady dla mediów w komunikatorach (tymczasowe)

  • Do czasu pełnego rollout’u rozważ wyłączenie auto-pobierania mediów w zarządzanych komunikatorach albo polityki „open-in-viewer sandbox” (jeśli MDM/Knox to wspiera). (Ogólna praktyka ograniczająca powierzchnię ataku obrazami RAW.)

3) Telemetria i hunting

  • Monitoruj katalogi mediów komunikatorów pod kątem pliki .dng / JPEG zawierające podpis ZIP na końcu (magic 50 4B 03 04).
    Przykładowy one-liner dla urządzeń z dostępem ADB (urządzenia testowe/lab):
# Szukaj artefaktów plików DNG/JPEG z dołączonym ZIP w MediaStore WhatsAppa
adb shell 'for f in $(find /sdcard/WhatsApp/Media -type f \( -iname "*.dng" -o -iname "*.jpg" -o -iname "*.jpeg" \) 2>/dev/null); do \
  tail -c +1 "$f" | hexdump -Cv | tail -n +1 | grep -q "50 4b 03 04" && echo "[SUSPECT] $f"; done'
  • Przejrzyj ruch pod kątem anomalii do domen/IP C2 (jeśli posiadasz IOK/IOC z Twoich sensorów lub z raportów komercyjnych). Unit 42 wskazuje obszary geograficzne i podobieństwa infrastrukturalne do komercyjnych PSSA/PSOA, ale nie publikuje jednoznacznej atrybucji.

4) Kontrola uprawnień i detekcja zachowań

  • Upewnij się, że agent MTD/Mobile EDR ma zasady wykrywania nietypowych uprawnień SELinux i prób wywołań loaderów .so z katalogów danych aplikacji.
  • W SIEM utwórz reguły korelacyjne na: nagłe uruchomienia mikrofonu w tle + transfer danych + aktywność lokalizacyjna na urządzeniach Galaxy.

5) Reagowanie na incydent (IR)

  • Izoluj urządzenie (Knox/MDM: tryb „lost mode”/block network), wykonaj cold reboot, zbierz ADB bugreport i kopię katalogów mediów do analizy.
  • Jeśli wykryto wskaźniki LANDFALL: factory reset + odtworzenie z czystej kopii, rotacja kont/kluczy używanych na urządzeniu.

6) Polityki długofalowe

  • W standardach bezpieczeństwa mobilnego dodaj wymóg: „aktualizacje SMR ≤30 dni” oraz „parsery obrazów RAW/DNG pod specjalnym nadzorem” (testy regresji).
  • Minimalizuj zaufanie do bibliotek multimedialnych – sandboxy, ograniczenia parserów w aplikacjach o podwyższonym zaufaniu.

Różnice / porównania z innymi przypadkami

  • CVE-2025-21042 vs CVE-2025-21043 (Samsung, ten sam komponent)
    Obie luki dotyczą libimagecodec.quram.so i formatu DNG, lecz 21042 (załatana w kwietniu 2025) jest bezpośrednio powiązana z kampanią LANDFALL. 21043 (załatana we wrześniu 2025) również była obserwowana „in the wild”, ale nie w tej konkretnej kampanii. Dla SOC/MDM praktycznie oznacza to patch oba zestawy SMR i objęcie parsera DNG testami bezpieczeństwa.
  • Paralela do ekosystemu Apple/WhatsApp (2025 r.)
    Unit 42 wskazuje podobieństwa do równoległych łańcuchów na iOS (m.in. CVE-2025-43300 po stronie DNG i CVE-2025-55177 po stronie WhatsApp); nie ma jednak dowodu na nieznaną lukę w samym WhatsApp w scenariuszu Samsung/Android. Wniosek: parsery obrazów RAW stały się istotnym wektorem APT/spyware w 2024–2025.

Podsumowanie / kluczowe wnioski

  • Zaktualizuj wszystkie Galaxy do SMR Apr-2025 R1 lub nowszej – to eliminuje CVE-2025-21042, którą CISA klasyfikuje jako aktywnie wykorzystywaną (KEV, termin 1.12.2025 dla FCEB).
  • Wprowadź tymczasowe ograniczenia dla mediów DNG w komunikatorach do czasu 100% zgodności floty.
  • Usprawnij hunting pod kątem anomalii w obrazach (DNG z dołączonym ZIP) i zachowań (SELinux, mikrofon, exfil).
  • Traktuj parsery grafiki jako powierzchnię wysokiego ryzyka – regularne testy i szybkie rollouty SMR.

Źródła / bibliografia

  1. NVD – CVE-2025-21042: opis, CVSS, odniesienia do KEV i SMR Apr-2025 R1. (NVD)
  2. Samsung Mobile Security – SMR Apr-2025 R1: biuletyn z poprawką dla libimagecodec.quram.so. (Samsung Mobile Security)
  3. Unit 42 (Palo Alto Networks) – LANDFALL: pełna analiza kampanii, wektor DNG, komponenty .so, oś czasu i kraje celów. (Unit 42)
  4. CISA KEV/BOD 22-01 (poprzez NVD): data dodania do KEV (2025-11-10), termin naprawy (2025-12-01) i wymóg zastosowania mitigacji. (NVD)
  5. NVD – powiązania i historia zmian: wpisy dot. KEV i referencji Unit 42/Samsung. (NVD)

CVE-2025-21042 — RCE w libimagecodec.quram.so (Samsung Galaxy)

TL;DR

  • Krytyczny błąd out‑of‑bounds write w bibliotece obrazu libimagecodec.quram.so na urządzeniach Samsung umożliwia zdalne wykonanie kodu podczas przetwarzania specjalnie spreparowanego pliku DNG; załatany w SMR Apr‑2025 Release 1.
  • NVD ocenia bazowy CVSS 3.1 = 9.8 (UI:N), podczas gdy ocena producenta wskazuje 8.8 (UI:R) — różnica wynika z interpretacji wymaganej interakcji użytkownika.
  • CISA dodała CVE-2025-21042 do KEV (11‑10‑2025), wymagając szybkiego wdrożenia łatek.
  • W kampanii LANDFALL złośliwe DNG przekazywano m.in. przez komunikatory; po exploicie ładowano komponenty spyware i łączono się z C2.
  • Dla SOC: wykrywaj krótki łańcuch pobranie DNG → crash/SEGSEGV libimagecodec → outbound HTTPS C2, waliduj poziom SMR, izoluj urządzenia przez MDM.

Krótka definicja techniczna

CVE‑2025‑21042 to podatność typu out‑of‑bounds write w libimagecodec.quram.so (komponent parsowania obrazów na Androidzie Samsunga). Przetworzenie specjalnie spreparowanego pliku obrazu może skutkować zdalnym wykonaniem kodu. Problem został zaadresowany w Samsung Mobile Security Maintenance Release (SMR) Apr‑2025 Release 1.


Gdzie występuje / przykłady platform

  • Android (Samsung Galaxy): biblioteka libimagecodec.quram.so; podatność aktywuje się podczas parsowania zawartości (np. DNG). Patch dostępny od SMR Apr‑2025 R1.
  • Komunikatory / aplikacje konsumenckie: kampania LANDFALL wykorzystywała spreparowane pliki DNG (często dostarczane przez komunikator), co prowadziło do RCE i doinstalowania komponentów spyware.
  • Windows / AD / AWS / Azure / GCP / K8s / ESXi / M365: nie dotyczy bezpośrednio (wektor dotyczy urządzeń mobilnych i ich aplikacji). W środowiskach korporacyjnych wpływ występuje pośrednio (MDM/EDR dla Android, serwisy proxy/DLP).

Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)

Wadliwe sprawdzenie granic bufora w libimagecodec.quram.so pozwala nadpisać pamięć podczas dekodowania obrazu. W obserwowanej kampanii LANDFALL nośnikiem były pliki DNG (TIFF‑like), do których dodano na końcu zarchiwizowane komponenty (ZIP). Po skutecznym RCE łańcuch wyodrębniał i uruchamiał .so loadera, który dalej pobierał moduły spyware i nawiązywał łączność z C2. Samsung usunął błąd w SMR Apr‑2025 R1; CISA klasyfikuje podatność jako aktywnie wykorzystywaną (KEV). Skuteczność wynika z: szerokiej powierzchni ataku (rendering obrazów przez aplikacje), trudności w inspekcji treści binarnej obrazów oraz łańcucha, który minimalizuje artefakty instalacyjne.

Uwaga o ocenach: NVD przypisał CVSS 9.8 (UI:N), a producent 8.8 (UI:R) — w praktyce obserwowano scenariusz z dostarczeniem przez usługę/komunikator; nie wszystkie warianty muszą wymagać interakcji użytkownika.


Artefakty i logi (co i gdzie szukać)

WarstwaŹródło/logCo szukaćPrzykład/wzorzec
Android (urządzenie)logcat (crash, events)Crashe mediaserver/procesu parsującego z odniesieniem do libimagecodec.quram.so; SIGSEGV/signal 11message:*libimagecodec.quram.so* AND (*SIGSEGV* OR *signal 11*)
Android (tombstones)/data/tombstones/Backtrace z ramką w libimagecodec.quram.so; offsety w dekoderze obrazuplik tombstone_*.txt z backtrace ... libimagecodec.quram.so
Aplikacje/IOŚcieżki plików aplikacji (np. media z komunikatora)Świeżo zapisane pliki .dng poprzedzające crash.../Media/.../*.dng (czas modyfikacji ≈ czas crasha)
Sieć/Proxy/NGFWHTTP(S) transakcje z CDN komunikatora; odpowiedzi image/x-adobe-dngNietypowo duże DNG; anomalia UA; po pobraniu — połączenia do rzadkich domen (C2)content_type=image/x-adobe-dng AND bytes_in > N potem dst_category=unknown
MDM/MTD/EDR MobileInwentarz wersji / zgodność patchyPoziom SMR < Apr‑2025 R1raport zgodności MDM: brak łat bezpieczeństwa kwiecień 2025
M365/Defender AHDeviceTvmSoftwareVulnerabilities (jeśli dostępne dla Android)Wzmianki o CVE-2025-21042 na urządzeniach mobilnychCveId == "CVE-2025-21042"
AWS CloudTrailNie dotyczy (wektor mobilny)
K8s auditNie dotyczy
M365 OperationsPośrednio: alerty DLP/Defender na strumienie C2wzmianki o anomaliach HTTP(S) po crashu

Źródła techniczne o wektorze i łatce: NVD/Samsung/Unit42.


Detekcja (praktyczne reguły)

Sigma (Android logcat — crash dekodera obrazu)

title: CVE-2025-21042 — podejrzenie exploitu (crash libimagecodec.quram.so po DNG)
id: 5f2b0a2b-2f9d-4b64-9f3e-c21042dng
status: experimental
description: Wykrywa crash parsowania obrazu z odniesieniem do libimagecodec.quram.so po zapisaniu pliku .dng (np. z komunikatora)
author: Badacz CVE
date: 2025/11/11
logsource:
  product: android
  service: logcat
detection:
  crash:
    message|contains:
      - 'libimagecodec.quram.so'
      - 'SIGSEGV'
  dng_hint:
    message|contains:
      - '.dng'
  condition: crash and dng_hint
falsepositives:
  - Rzadkie awarie libimagecodec podczas obróbki prawidłowych plików
level: high
tags:
  - cve.2025-21042
  - attack.t1658
  - attack.t1664

Splunk (SPL) — korelacja: zapis DNG → crash → wyjście HTTPS

| tstats summariesonly=f allow_old_summaries=t
  count from datamodel=Endpoint.Filesystem
  where Filesystem.file_extension=dng
  by _time, Filesystem.dest, Filesystem.file_name, Filesystem.file_path
| rename Filesystem.dest as device, Filesystem.file_name as fname, Filesystem.file_path as fpath
| join device [ search index=android sourcetype=logcat (libimagecodec.quram.so AND (SIGSEGV OR "signal 11"))
               | stats earliest(_time) as crash_time by host
               | rename host as device ]
| where abs(crash_time - _time) <= 300
| join device [ search index=proxy OR index=fw (dest_category=unknown OR category="newly_seen")
               | stats latest(_time) as c2_time by src_ip, cs_host
               | rename src_ip as device ]
| table device, fname, fpath, _time, crash_time, c2_time, cs_host

KQL (Microsoft 365 Defender — Advanced Hunting)

  1. Widok podatności (TVM), jeśli dostępny dla Androida:
DeviceTvmSoftwareVulnerabilities
| where CveId == "CVE-2025-21042"
| summarize dcount(DeviceId) by SoftwareVendor, SoftwareName
  1. Korelacja crashu i potencjalnej aktywności sieciowej:
let CrashWin = 5m;
let crashes =
DeviceEvents
| where DeviceType == "Android"
| where ActionType in ("ApplicationCrashed","ExploitAttempted","AbnormalProcessTermination")
| where AdditionalFields has "libimagecodec.quram.so";
let dngWrites =
DeviceFileEvents
| where DeviceType == "Android"
| where FileName endswith ".dng";
crashes
| join kind=innerunique (dngWrites) on DeviceId
| where datetime_diff('second', crashes.Timestamp, dngWrites.Timestamp) between (-CrashWin .. CrashWin)

CloudTrail query (AWS CLI/CloudWatch)

  • [nie dotyczy] — brak bezpośrednich zdarzeń AWS dla wektora mobilnego.

Elastic / EQL (ECS)

sequence by host.id with maxspan=5m
  [ file where file.extension == "dng" and process.name in ("com.whatsapp","com.android.mms","com.sec.android.gallery3d") ]
  [ any where event.category == "process" and event.action == "crash" and message like "*libimagecodec.quram.so*" ]
  [ network where network.protocol == "http" and destination.domain in ("unknown","newly_observed") ]

Wzorce oparte na publicznych opisach wektora (DNG → crash → C2). Dostosuj nazwy pól do własnego schematu.


Heurystyki / korelacje

  • Korelacja czasowa: zapis/plansza DNG w mediach komunikatora ±5 min → crash libimagecodec.quram.so → nowy outbound HTTPS do mało‑popularnej domeny.
  • Anomalia rozmiaru: DNG większy niż typowe zdjęcia RAW z telefonu użytkownika (ze względu na doczepione ZIP).
  • Ścieżka pliku i nazewnictwo: wzorce typu WhatsApp Image YYYY-MM-DD ... .jpeg z rozszerzeniem DNG/niepełnym EXIF.
  • Geografia/intel: próbki obserwowane m.in. w Irak, Iran, Turcja, Maroko — wzmocnij monitoring dla tych regionów/oddziałów.

False positives / tuning

  • Pojedyncze crashe dekodera obrazu (wadliwe pliki graficzne, aplikacje foto).
  • Legalne pliki DNG z dużymi zasobnikami (profesjonalne RAW), bez dalszych objawów (brak C2).
  • Tuning: wymagaj sekwencji: DNG → crash → nowy outbound do mało‑popularnej domeny oraz brak patcha SMR Apr‑2025 na urządzeniu.

Playbook reagowania (IR)

  1. Triag/izolacja: odizoluj urządzenie w MDM (blokada sieci, wyłącz backupy).
  2. Weryfikacja łatek: sprawdź SMR Apr‑2025 R1 lub nowszy; brak → wymuś aktualizację.
  3. Zabezpieczenie artefaktów: zbierz logcat -b crash -d, tombstones, listę ostatnio zapisanych .dng i ich SHA‑256 (nie otwieraj na urządzeniu!).
  4. Hunting: wyszukaj w proxy/NGFW rzadkie domeny po crashu; skorelować z innymi urządzeniami.
  5. Eradykacja: usuń podejrzane media, przywróć urządzenie do stanu zgodnego (patch), zresetuj tokeny/aplikacje dotknięte (komunikatory).
  6. Komunikacja: poinformuj użytkownika, przeprowadź świadomość nt. nieotwierania nieoczekiwanych obrazów (do czasu pełnej dystrybucji poprawek).
  7. Lessons Learned: dodaj reguły DLP/NGFW dla nietypowych DNG z CDN komunikatorów; zasil listy C2 z TI.

Przykłady z kampanii / case studies

  • LANDFALL (Unit 42, 2024–2025): Zidentyfikowano spreparowane DNG z dołączonym ZIP; po exploicie łańcuch ładował moduły spyware i łączył z C2. Aktywność obserwowana m.in. w Iraku, Iranie, Turcji i Maroku.
  • Doniesienia prasowe (THN/SecurityWeek) potwierdzają wykorzystanie CVE‑2025‑21042 jako zero‑daya do dostarczenia LANDFALL na Galaxy; patch w kwietniu 2025.
  • KEV: CISA dodała CVE do katalogu znanych exploitów 10 listopada 2025 — priorytet wdrożenia łatek.

Lab (bezpieczne testy) — tylko do walidacji detekcji

Nie generujemy exploitów. Poniższe kroki tworzą nieszkodliwy plik testowy (DNG z doczepionym ZIP), aby sprawdzić łańcuch detekcyjny. Nie otwieraj pliku na podatnych urządzeniach.

  1. Przygotuj próbkę:
# Użyj dowolnego bezpiecznego DNG (np. z aparatu) lub skonwertuj zdjęcie do DNG w narzędziu offline.
echo "hello" > harmless.txt
zip harmless.zip harmless.txt
cat sample.dng harmless.zip > sample_dng_plus_zip.dng
sha256sum sample_dng_plus_zip.dng
  1. Weryfikacja sygnatur:
# Spodziewane 'PK\x03\x04' blisko końca pliku
strings -n 4 sample_dng_plus_zip.dng | tail
  1. Walidacja pipeline: wgraj plik na sandbox/serwer skanujący (nie na urządzenie mobilne), sprawdź czy:
    • reguły proxy/IDS klasyfikują go jako image/x-adobe-dng o większym rozmiarze,
    • reguły SIEM (z sekcji 7) flagują zdarzenie (bez części „crash”).

Mapowania (Mitigations, powiązane techniki)

Mitigations (Mobile/Enterprise):

  • M1051 — Update Software: natychmiastowe wdrożenie SMR Apr‑2025 R1 i nowszych na urządzeniach Samsung.
  • M1013 — Application Developer Guidance: twarda walidacja danych wejściowych w bibliotekach obrazów (wskazanie dla dostawców/SDLC).
  • M1002 — Attestation (Mobile): egzekwuj nienaruszalność/stan urządzeń (wykrywanie modyfikacji/SELinux).

Powiązane techniki ATT&CK:

  • T1658 (Mobile), T1203 (Enterprise)Exploitation for Client Execution (rdzeń problemu).
  • T1664 (Mobile)Exploitation for Initial Access (wejście przez parser obrazu).
  • T1566.003 (Enterprise)Spearphishing via Service (dostarczanie przez komunikator).

Źródła / dalsza lektura

  • NVD/CVE: opis, oceny CVSS (różnica NVD vs. producent), KEV (data dodania). (NVD)
  • CVE.org: rekord CVE. (CVE)
  • Samsung SMR Apr‑2025 R1: wpis SVE‑2024‑1969 → CVE‑2025‑21042 i status łaty. (Samsung Mobile Security)
  • Unit 42 (Palo Alto Networks): analiza kampanii LANDFALL (DNG z doczepionym ZIP, łańcuch spyware, geografia). (Unit 42)
  • The Hacker News / SecurityWeek: doniesienia prasowe o real‑world exploitation i patchu. (The Hacker News)
  • MITRE ATT&CK — wersje i techniki Mobile/Enterprise: techniki T1658/T1664/T1203/T1566.003; wersja v18.0. (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjna):

  1. Widok urządzeń Samsung + poziom SMR (Apr‑2025 lub nowszy).
  2. Reguły SIEM: sekwencja DNG → crash libimagecodec → nowe C2.
  3. Filtry proxy/NGFW dla image/x‑adobe‑dng z CDN komunikatorów (anomalie rozmiaru).
  4. Blokada/monitoring domen „nowo obserwowanych” po crashu.
  5. Collectors: logcat crash, tombstones z Androida.
  6. Hurtowe wyszukiwanie CVE‑2025‑21042 w TVM/MDM/EDR.
  7. Procedura szybkiej izolacji przez MDM.
  8. Playbook IR z sekcji 10 (w tym komunikacja z użytkownikiem).
  9. Walidacja reguł detekcyjnych na plikach testowych (sekcja 12).
  10. Retrospektywny hunting 2024–2025 pod kątem anomalii DNG.

CISO (strategiczna):

  1. SLA na wdrażanie SMR/aktualizacji (mitigation M1051).
  2. Polityka MDM wymuszająca stan „zgodny” przed dostępem do zasobów.
  3. Zdolność do telemetrii mobilnej (logcat/tombstones) w SIEM.
  4. Threat intel dotyczący KEV i kampanii mobilnych (LANDFALL).
  5. Testy kontrolne: inspekcja nośników medialnych (obrazy/RAW) w gateway’u.
  6. Program świadomości o zagrożeniach w komunikatorach (T1566.003).