WWW2Exec - sips ICC Profile Out-of-Bounds Write (CVE-2024-44236)
Reading time: 3 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Panoramica
Una vulnerabilità di scrittura fuori dai limiti nel parser del profilo ICC del sistema di elaborazione delle immagini scriptabile di Apple macOS (sips
) (macOS 15.0.1, sips-307) a causa di una convalida impropria del campo offsetToCLUT
nei tag lutAToBType
(mAB
) e lutBToAType
(mBA
). Un file ICC creato ad hoc può attivare scritture zero fino a 16 byte oltre il buffer heap, corrompendo i metadati dell'heap o i puntatori di funzione e abilitando l'esecuzione di codice arbitrario (CVE-2024-44236).
Codice Vulnerabile
La funzione vulnerabile legge e azzera 16 byte a partire da un offset controllato dall'attaccante senza garantire che si trovi all'interno del buffer allocato:
// 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;
}
Solo un controllo offsetToCLUT <= totalDataLength
viene eseguito. Impostando offsetToCLUT == tagDataSize
, il ciclo indicizza fino a 16 byte oltre la fine di buffer
, corrompendo i metadati dell'heap adiacenti.
Passi di sfruttamento
- Crea un profilo
.icc
malevolo:
- Costruisci l'intestazione ICC (128 byte) con la firma
acsp
e una singola voce di taglutAToBType
olutBToAType
. - Nella tabella dei tag, imposta
offsetToCLUT
uguale allasize
del tag (tagDataSize
). - Posiziona i dati controllati dall'attaccante immediatamente dopo il blocco di dati del tag per sovrascrivere i metadati dell'heap.
- Attiva l'analisi:
sips --verifyColor malicious.icc
- Corruzione dei metadati dell'heap: Le scritture zero OOB sovrascrivono i metadati dell'allocatore o i puntatori adiacenti, consentendo all'attaccante di dirottare il flusso di controllo e ottenere l'esecuzione arbitraria di codice nel contesto del processo
sips
.
Impatto
Lo sfruttamento riuscito porta all'esecuzione remota di codice arbitrario con privilegi utente su sistemi macOS che eseguono l'utilità sips
vulnerabile.
Rilevamento
- Monitora i trasferimenti di file su protocolli comuni (FTP, HTTP/S, IMAP, SMB, NFS, SMTP).
- Ispeziona i file trasferiti con la firma
acsp
. - Per ogni tag
mAB
omBA
, verifica se il campoOffset to CLUT
è uguale allaTag data size
. - Segnala come sospetto se questa condizione è soddisfatta.
Riferimenti
- ZDI blog: CVE-2024-44236: Vulnerabilità di Esecuzione Remota di Codice nell'Utilità sips di Apple macOS https://www.thezdi.com/blog/2025/5/7/cve-2024-44236-remote-code-execution-vulnerability-in-apple-macos
- Aggiornamento di Sicurezza di Apple di Ottobre 2024 (patch che risolve CVE-2024-44236) https://support.apple.com/en-us/121564
{{#include /banners/hacktricks-training.md}}