3.0 KiB
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é :
// 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
- Créer un profil
.icc
malveillant :
- Construire l'en-tête ICC (128 octets) avec la signature
acsp
et une seule entrée de taglutAToBType
oulutBToAType
. - Dans la table des tags, définir
offsetToCLUT
égal à lataille
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.
- Déclencher l'analyse :
sips --verifyColor malicious.icc
- 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
oumBA
, vérifier si le champOffset to CLUT
est égal à laTaille 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}}