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

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é :

// 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 :
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