2.8 KiB
WWW2Exec - sips ICC Profile Out-of-Bounds Write (CVE-2024-44236)
{{#include ../../banners/hacktricks-training.md}}
Visão Geral
Uma vulnerabilidade de escrita fora dos limites no parser de perfil ICC do Apple macOS Scriptable Image Processing System (sips) (macOS 15.0.1, sips-307) devido à validação inadequada do campo offsetToCLUT nos tags lutAToBType (mAB ) e lutBToAType (mBA ). Um arquivo ICC elaborado pode acionar gravações zero até 16 bytes além do buffer da pilha, corrompendo metadados da pilha ou ponteiros de função e permitindo a execução de código arbitrário (CVE-2024-44236).
Código Vulnerável
A função vulnerável lê e zera 16 bytes a partir de um deslocamento controlado pelo atacante sem garantir que esteja dentro do buffer alocado:
// 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;
}
Apenas uma verificação offsetToCLUT <= totalDataLength é realizada. Ao definir offsetToCLUT == tagDataSize, o loop indexa até 16 bytes além do final de buffer, corrompendo os metadados da heap adjacente.
Etapas de Exploração
- Criar perfil
.iccmalicioso:
- Construa o cabeçalho ICC (128 bytes) com a assinatura
acspe uma única entrada de taglutAToBTypeoulutBToAType. - Na tabela de tags, defina
offsetToCLUTigual aosizeda tag (tagDataSize). - Coloque dados controlados pelo atacante imediatamente após o bloco de dados da tag para sobrescrever os metadados da heap.
- Acionar a análise:
sips --verifyColor malicious.icc
- Corrompimento de metadados da heap: As gravações zero fora da faixa sobrescrevem os metadados do alocador ou ponteiros adjacentes, permitindo que o atacante se aproprie do fluxo de controle e consiga execução arbitrária de código no contexto do processo
sips.
Impacto
A exploração bem-sucedida resulta em execução remota de código arbitrário com privilégios de usuário em sistemas macOS que executam o utilitário sips vulnerável.
Detecção
- Monitore transferências de arquivos em protocolos comuns (FTP, HTTP/S, IMAP, SMB, NFS, SMTP).
- Inspecione arquivos transferidos com a assinatura
acsp. - Para cada tag
mABoumBA, verifique se o campoOffset to CLUTé igual aoTag data size. - Marque como suspeito se essa condição for atendida.
Referências
- Blog da ZDI: CVE-2024-44236: Vulnerabilidade de Execução Remota de Código no Utilitário sips da Apple macOS https://www.thezdi.com/blog/2025/5/7/cve-2024-44236-remote-code-execution-vulnerability-in-apple-macos
- Atualização de Segurança da Apple de Outubro de 2024 (patch enviando CVE-2024-44236) https://support.apple.com/en-us/121564
{{#include /banners/hacktricks-training.md}}