# WWW2Exec - sips ICC Profile Out-of-Bounds Write (CVE-2024-44236) {{#include ../../banners/hacktricks-training.md}} ## Aperçu Une vulnérabilité d'écriture hors limites dans le parseur de profil ICC du Système de Traitement d'Image Scriptable d'Apple macOS (`sips`) (macOS 15.0.1, sips-307) en raison d'une validation incorrecte du champ `offsetToCLUT` dans les balises `lutAToBType` (`mAB `) et `lutBToAType` (`mBA `). Un fichier ICC conçu peut déclencher des écritures nulles jusqu'à 16 octets au-delà du tampon de tas, corrompant les métadonnées du tas ou les pointeurs de fonction et permettant l'exécution de code arbitraire (CVE-2024-44236). ## Code Vulnérable La fonction vulnérable lit et met à zéro 16 octets à partir d'un décalage contrôlé par l'attaquant sans s'assurer qu'il se trouve dans le tampon alloué : ```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; } ``` Seule une vérification `offsetToCLUT <= totalDataLength` est effectuée. En définissant `offsetToCLUT == tagDataSize`, la boucle indexe jusqu'à 16 octets au-delà de la fin de `buffer`, corrompant les métadonnées de tas adjacentes. ## Étapes d'exploitation 1. **Créer un profil `.icc` malveillant :** - Construire l'en-tête ICC (128 octets) avec la signature `acsp` et une seule entrée de tag `lutAToBType` ou `lutBToAType`. - Dans la table des tags, définir `offsetToCLUT` égal à la `taille` du tag (`tagDataSize`). - Placer des données contrôlées par l'attaquant immédiatement après le bloc de données du tag pour écraser les métadonnées de tas. 2. **Déclencher l'analyse :** ```bash sips --verifyColor malicious.icc ``` 3. **Corruption des métadonnées de tas :** Les écritures zéro OOB écrasent les métadonnées de l'allocateur ou les pointeurs adjacents, permettant à l'attaquant de détourner le flux de contrôle et d'atteindre l'exécution de code arbitraire dans le contexte du processus `sips`. ## Impact Une exploitation réussie entraîne l'exécution de code arbitraire à distance avec des privilèges utilisateur sur les systèmes macOS exécutant l'utilitaire `sips` vulnérable. ## Détection - Surveiller les transferts de fichiers sur des protocoles courants (FTP, HTTP/S, IMAP, SMB, NFS, SMTP). - Inspecter les fichiers transférés avec la signature `acsp`. - Pour chaque tag `mAB ` ou `mBA `, vérifier si le champ `Offset to CLUT` est égal à la `Taille des données du tag`. - Signaler comme suspect si cette condition est remplie. ## Références - Blog ZDI : CVE-2024-44236 : Vulnérabilité d'exécution de code à distance dans l'utilitaire sips d'Apple macOS https://www.thezdi.com/blog/2025/5/7/cve-2024-44236-remote-code-execution-vulnerability-in-apple-macos - Mise à jour de sécurité d'Apple d'octobre 2024 (patch expédiant CVE-2024-44236) https://support.apple.com/en-us/121564 {{#include ../../banners/hacktricks-training.md}}