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

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

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.
  1. Déclencher l'analyse :
bash
sips --verifyColor malicious.icc
  1. 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

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks