CVE-2025-59299: luka w Delta Electronics DIAScreen (błąd walidacji plików wejściowych) – analiza, ryzyko i zalecenia

securitybeztabu.pl 1 dzień temu

Wprowadzenie do problemu / definicja luki

CVE-2025-59299 to podatność w oprogramowaniu Delta Electronics DIAScreen (narzędzie HMI/SCADA z ekosystemu DIAStudio). Błąd wynika z braku prawidłowej walidacji danych z pliku dostarczonego przez użytkownika, co skutkuje zapisywaniem poza końcem bufora podczas parsowania projektu (CWE-787). Do wykorzystania konieczne jest otwarcie przez użytkownika specjalnie spreparowanego pliku – efekt to wykonanie kodu w kontekście bieżącego procesu. Wersje podatne to wszystkie przed 1.6.1; producent opublikował aktualizację podnoszącą DIAScreen do v1.6.1.

W skrócie

  • Produkt: Delta Electronics DIAScreen
  • CVE: CVE-2025-59299
  • Klasyfikacja: CWE-787 Out-of-Bounds Write (błąd parsowania plików projektu DPA)
  • Wymagania ataku: interakcja użytkownika (otwarcie złośliwego pliku)
  • Skutki: RCE w kontekście procesu DIAScreen (wysokie CIA)
  • Ocena ryzyka: CVSS v3.1 7.8 (High); v4.0 6.8 (Medium) wg CNA
  • Wersje podatne: < 1.6.1; remediacja: aktualizacja do v1.6.1
  • Zakres: środowiska OT/ICS, szczególnie stacje inżynierskie/HMI z DIAStudio

Kontekst / historia / powiązania

Luka została ujawniona w pakiecie czterech podobnych błędów DIAScreen: CVE-2025-59297, -59298, -59299, -59300, wszystkie o charakterze Out-of-Bounds Write w parserze plików projektu. Producent opublikował formalną notę bezpieczeństwa Delta-PCSA-2025-00018 z jednoznaczną rekomendacją aktualizacji do v1.6.1. Zero Day Initiative przypisuje odkrycie badaczowi Natnael Samson (@NattiSamson) i potwierdza wektor: złośliwy plik DPA → parsowanie → OOB write → RCE.

Analiza techniczna / szczegóły luki

Gdzie jest błąd?
W komponencie parsującym pliki projektu .DPA. Plik zawiera strukturę danych, która – przy braku rygorystycznej walidacji długości/pól – może spowodować zapis danych poza zaalokowaną strukturą. To klasyczny heap/stack OOB write (CWE-787), który umożliwia nadpisanie wskaźników/kontrolnych struktur pamięci i w konsekwencji przejęcie przepływu wykonania.

Warunki ataku:

  • Ofiara otwiera złośliwy plik w DIAScreen (wektor „file-based”).
  • Uprawnienia nie są wymagane ponad domyślne (PR:N), ale to atak lokalny z UI:R (użytkownik musi otworzyć plik).
  • Po udanym wywołaniu błędu możliwe jest RCE w kontekście użytkownika uruchamiającego DIAScreen.

Metadane CVSS (NVD):

  • CVSS v3.1: 7.8 (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)
  • CVSS v4.0 (CNA): 6.8 (UI:A, VA:H, itd.)
    W praktyce, na stacjach inżynierskich OT konsekwencje te często przekładają się na wysokie ryzyko operacyjne (kontekst HMI/SCADA).

Praktyczne konsekwencje / ryzyko

Scenariusze nadużyć w OT/ICS:

  1. Spear-phishing do inżynierów/techników – załącznik „aktualizacja projektu.dpa”; po otwarciu dochodzi do RCE i osadzenia implantu w środowisku HMI.
  2. Wymiana plików przez pamięci USB w strefach z ograniczoną łącznością – wektor popularny w fabrykach i na liniach produkcyjnych.
  3. Złośliwy projekt na serwerze wersji (np. share SMB) – podmiana pliku projektu, kompromitacja kolejnych stacji.

Skutek biznesowy: przejęcie stacji inżynierskiej/HMI może pozwolić na manipulację ekranami sterowania, zmianę receptur/parametrów, czy sabotaż procesu przy dalszym ruchu bocznym. Brak izolacji IT/OT i słaba segmentacja zwiększają prawdopodobieństwo eskalacji.

Źródła potwierdzają wektor i wpływ wprost (RCE po otwarciu pliku) oraz wskazują na pakiet czterech CVE w tej samej klasie błędów.

Rekomendacje operacyjne / co zrobić teraz

1) Patching i inwentarz

  • Zaktualizuj DIAScreen do v1.6.1 lub nowszej na wszystkich stacjach inżynierskich/HMI. To oficjalna i jednoznaczna rekomendacja producenta.
  • Zidentyfikuj instalacje (Windows) i sprawdź wersję aplikacji:
# Wykrywanie zainstalowanego DIAScreen i wersji w rejestrze (Apps & Features) Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' ` | Where-Object { $_.DisplayName -match 'DIAScreen' } ` | Select-Object DisplayName, DisplayVersion, Publisher, InstallLocation

Jeżeli skrypt nie zwróci wyniku, przeszukaj dysk pod kątem katalogów DIAStudio/DIAScreen i sprawdź wersję plików binarnych (Właściwości → Szczegóły).

2) „Virtual patching” i twardnienie do czasu aktualizacji

  • Zabroń/ogranicz otwieranie plików .DPA z lokacji ryzykownych (Downloads, %TEMP%, nośniki wymienne) – reguła SRP/AppLocker (Path/Hash).
  • Polityki pocztowe: blokada lub kwarantanna załączników .dpa, tagowanie detekcji w bramce pocztowej (DLP/ATP).
  • Kontrola nośników USB: whitelisting urządzeń, skan AV/EDR, auto-kwarantanna plików .dpa zewnętrznych.
  • Segmentacja sieci OT: stacje z DIAScreen za zaporą, brak dostępu z sieci biurowej; zdalny dostęp tylko VPN i tylko z listy dozwolonych.

3) Monitoring i detekcja (przykłady)

Sigma (Windows) – podejrzane otwarcia plików DPA z lokalizacji wysokiego ryzyka:

title: Suspicious DIAScreen Project Open From Risky Locations id: 1b1a1e0c-6f6b-4d40-b1e5-7d1f4f5a9da9 status: experimental logsource: category: file_event product: windows detection: selection_ext: TargetFilename|endswith: '.dpa' selection_paths: TargetFilename|contains: - '\Downloads\' - '\Temp\' - '\$Recycle.Bin\' - '\RemovableDrive\' condition: selection_ext and selection_paths level: medium tags: - attack.initial_access - attack.t1204.002 # Malicious File

Sysmon – nietypowe wywołanie DIAScreen po otwarciu projektu:

<!-- Sysmon Event ID 1: Process Create --> <RuleGroup name="DIAScreen Suspicious Launch" groupRelation="or"> <ProcessCreate onmatch="include"> <Image condition="end with">DIAScreen.exe</Image> <ParentImage condition="contains">\Temp\</ParentImage> </ProcessCreate> <ProcessCreate onmatch="include"> <Image condition="end with">DIAScreen.exe</Image> <CommandLine condition="contains">.dpa</CommandLine> </ProcessCreate> </RuleGroup>

EDR/AV: stwórz watchlist na proces DIAScreen.exe otwierający .dpa z „niezaufanych” ścieżek i na crash/exception w procesie (częsty artefakt prób OOB write).

4) Procedury użytkownika / szkolenia

  • Nie otwieraj plików projektu otrzymanych e-mailem/IM bez walidacji źródła.
  • W środowiskach air-gapped – skan nośników przed importem projektów.

Różnice / porównania z innymi przypadkami (pakiet CVE dla DIAScreen)

Zarówno CVE-2025-59297, -59298, -59299, jak i -59300 dotyczą tej samej klasy błędu (CWE-787) w parserze DIAScreen i są naprawione w v1.6.1. Różnią się one lokalizacją w kodzie/ścieżką parsowania i mogą być wyzwalane przez odmienne pola pliku. Z punktu widzenia obrony operacyjnej: te same kontrole (aktualizacja, polityki plików, segmentacja, monitoring) redukują ryzyko dla całego pakietu.

Podsumowanie / najważniejsze wnioski

  • To błąd „file-open → RCE”: wystarczy otwarcie złośliwego projektu .DPA.
  • Ryzyko realne w OT/ICS, bo DIAScreen działa na stacjach inżynierskich/HMI.
  • Patch do v1.6.1 jest dostępny i zalecany natychmiast.
  • Do czasu aktualizacji: blokuj .DPA z nieznanych źródeł, egzekwuj segmentację i monitoruj użycie DIAScreen.
  • Wprowadź procedury operacyjne: kontrola nośników, polityki pocztowe, szkolenia użytkowników.

Źródła / bibliografia

  1. Vendor advisory (PDF): „Delta-PCSA-2025-00018 – DIAScreen File Parsing Out-Of-Bounds Write Vulnerabilities” – wersje podatne < 1.6.1, CVSS v3.1=7.8, rekomendacja aktualizacji do v1.6.1. (PDF)
  2. NVD – CVE-2025-59299: opis „lacks proper validation of the user-supplied file”, metryki CVSS v3.1=7.8, wskazanie na wersje do <1.6.1 i link do advisory producenta. (NVD)
  3. ZDI-25-970: „DPA File Parsing Out-Of-Bounds Write RCE”, UI:R, RCE w kontekście bieżącego procesu, timeline i odniesienie do CISA. (zerodayinitiative.com)
  4. Ameeba Exploit Tracker – wpis o CVE-2025-59299: streszczenie luki (wektor plikowy, RCE po otwarciu). (Użyte jako źródło drugorzędne/uzupełniające). (Ameeba)
  5. Strona przeglądowa Delta – Product Cybersecurity Advisory: potwierdza istnienie advisory i politykę publikacji po dostępności poprawek. (deltaww.com)

Uwaga operacyjna: NVD i advisory producenta wprost wskazują v1.6.1 jako próg naprawy; utrzymuj ten numer jako twardy warunek zgodności w CMDB/OT asset management i audytach patch compliance.

Idź do oryginalnego materiału