WWW2Exec - sips ICC-Profil Out-of-Bounds Write (CVE-2024-44236)
Reading time: 3 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Übersicht
Eine Out-of-Bounds-Write-Sicherheitsanfälligkeit im ICC-Profilparser des Apple macOS Scriptable Image Processing System (sips
) (macOS 15.0.1, sips-307) aufgrund unzureichender Validierung des offsetToCLUT
-Feldes in den lutAToBType
(mAB
) und lutBToAType
(mBA
) Tags. Eine manipulierte ICC-Datei kann Null-Schreibvorgänge bis zu 16 Bytes über den Heap-Puffer hinaus auslösen, was die Heap-Metadaten oder Funktionszeiger beschädigt und die Ausführung beliebigen Codes ermöglicht (CVE-2024-44236).
Verwundbarer Code
Die verwundbare Funktion liest und setzt 16 Bytes auf Null, beginnend von einem vom Angreifer kontrollierten Offset, ohne sicherzustellen, dass dieser innerhalb des zugewiesenen Puffers liegt:
// 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;
}
Nur eine Überprüfung offsetToCLUT <= totalDataLength
wird durchgeführt. Durch Setzen von offsetToCLUT == tagDataSize
indiziert die Schleife bis zu 16 Bytes über das Ende von buffer
hinaus und korrumpiert benachbarte Heap-Metadaten.
Exploitation Steps
- Bösartiges
.icc
-Profil erstellen:
- Erstellen Sie den ICC-Header (128 Bytes) mit der Signatur
acsp
und einem einzelnenlutAToBType
oderlutBToAType
Tag-Eintrag. - Setzen Sie in der Tag-Tabelle
offsetToCLUT
gleich dersize
des Tags (tagDataSize
). - Platzieren Sie von Angreifern kontrollierte Daten unmittelbar nach dem Tag-Datenblock, um die Heap-Metadaten zu überschreiben.
- Parsing auslösen:
sips --verifyColor malicious.icc
- Korrumpierung der Heap-Metadaten: Die OOB-Nullschreibvorgänge überschreiben die Allokator-Metadaten oder benachbarte Zeiger, wodurch der Angreifer die Kontrolle über den Fluss übernehmen und die Ausführung beliebigen Codes im Kontext des
sips
-Prozesses erreichen kann.
Impact
Erfolgreiche Ausnutzung führt zu einer Remote-Ausführung beliebigen Codes mit Benutzerprivilegien auf macOS-Systemen, die das anfällige sips
-Dienstprogramm ausführen.
Detection
- Überwachen Sie Dateiübertragungen über gängige Protokolle (FTP, HTTP/S, IMAP, SMB, NFS, SMTP).
- Überprüfen Sie übertragene Dateien mit der Signatur
acsp
. - Überprüfen Sie für jedes
mAB
odermBA
Tag, ob das FeldOffset to CLUT
derTag data size
entspricht. - Als verdächtig kennzeichnen, wenn diese Bedingung erfüllt ist.
References
- 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 Oktober 2024 Sicherheitsupdate (Patch für CVE-2024-44236) https://support.apple.com/en-us/121564
{{#include /banners/hacktricks-training.md}}