WWW2Exec - sips ICC Profile Out-of-Bounds Write (CVE-2024-44236)

Reading time: 2 minutes

tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Przegląd

Wrażliwość na zapis poza granicami w parserze profilu ICC systemu Apple macOS Scriptable Image Processing System (sips) (macOS 15.0.1, sips-307) z powodu niewłaściwej walidacji pola offsetToCLUT w tagach lutAToBType (mAB ) i lutBToAType (mBA ). Opracowany plik ICC może wywołać zerowe zapisy do 16 bajtów poza buforem sterty, uszkadzając metadane sterty lub wskaźniki funkcji i umożliwiając wykonanie dowolnego kodu (CVE-2024-44236).

Wrażliwy kod

Wrażliwa funkcja odczytuje i zeruje 16 bajtów, zaczynając od przesunięcia kontrolowanego przez atakującego, nie zapewniając, że mieści się ono w przydzielonym buforze:

c
// Pseudocode from sub_1000194D0 in sips-307 (macOS 15.0.1)
for (i = offsetToCLUT; i < offsetToCLUT + 16; i++) {
if (i > numberOfInputChannels && buffer[i] != 0)
buffer[i] = 0;
}

Tylko sprawdzany jest offsetToCLUT <= totalDataLength. Ustawiając offsetToCLUT == tagDataSize, pętla indeksuje do 16 bajtów poza końcem buffer, psując sąsiednie metadane sterty.

Kroki Eksploatacji

  1. Stwórz złośliwy profil .icc:
  • Zbuduj nagłówek ICC (128 bajtów) z podpisem acsp i pojedynczym wpisem tagu lutAToBType lub lutBToAType.
  • W tabeli tagów ustaw offsetToCLUT równy size tagu (tagDataSize).
  • Umieść dane kontrolowane przez atakującego bezpośrednio po bloku danych tagu, aby nadpisać metadane sterty.
  1. Wywołaj analizę:
bash
sips --verifyColor malicious.icc
  1. Uszkodzenie metadanych sterty: OOB zero-writes nadpisują metadane alokatora lub sąsiednie wskaźniki, co pozwala atakującemu przejąć kontrolę nad przepływem i osiągnąć wykonanie dowolnego kodu w kontekście procesu sips.

Wpływ

Udana eksploatacja skutkuje zdalnym wykonaniem dowolnego kodu z uprawnieniami użytkownika na systemach macOS uruchamiających podatne narzędzie sips.

Wykrywanie

  • Monitoruj transfery plików w powszechnych protokołach (FTP, HTTP/S, IMAP, SMB, NFS, SMTP).
  • Sprawdź przesyłane pliki z podpisem acsp.
  • Dla każdego tagu mAB lub mBA zweryfikuj, czy pole Offset to CLUT równa się Tag data size.
  • Oznacz jako podejrzane, jeśli ten warunek jest spełniony.

Odniesienia

  • ZDI blog: CVE-2024-44236: Remote Code Execution Vulnerability in Apple macOS sips Utility https://www.thezdi.com/blog/2025/5/7/cve-2024-44236-remote-code-execution-vulnerability-in-apple-macos
  • Apple October 2024 Security Update (patch shipping CVE-2024-44236) https://support.apple.com/en-us/121564

{{#include /banners/hacktricks-training.md}}