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
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
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
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
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.