mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
2.8 KiB
Markdown
54 lines
2.8 KiB
Markdown
# 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:
|
|
```c
|
|
// 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
|
|
|
|
1. **Criar perfil `.icc` malicioso:**
|
|
- Construa o cabeçalho ICC (128 bytes) com a assinatura `acsp` e uma única entrada de tag `lutAToBType` ou `lutBToAType`.
|
|
- Na tabela de tags, defina `offsetToCLUT` igual ao `size` da tag (`tagDataSize`).
|
|
- Coloque dados controlados pelo atacante imediatamente após o bloco de dados da tag para sobrescrever os metadados da heap.
|
|
2. **Acionar a análise:**
|
|
|
|
```bash
|
|
sips --verifyColor malicious.icc
|
|
```
|
|
|
|
3. **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 `mAB ` ou `mBA `, verifique se o campo `Offset to CLUT` é igual ao `Tag 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}}
|