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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
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:
// 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
- Stwórz złośliwy profil
.icc
:
- Zbuduj nagłówek ICC (128 bajtów) z podpisem
acsp
i pojedynczym wpisem tagulutAToBType
lublutBToAType
. - W tabeli tagów ustaw
offsetToCLUT
równysize
tagu (tagDataSize
). - Umieść dane kontrolowane przez atakującego bezpośrednio po bloku danych tagu, aby nadpisać metadane sterty.
- Wywołaj analizę:
sips --verifyColor malicious.icc
- 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
lubmBA
zweryfikuj, czy poleOffset 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}}