
Script de prova de conceito que demonstra a contornar as verificações do Gatekeeper, da notarização e do XProtect do macOS ao explorar a CVE-2021-30853, permitindo a execução de payloads arbitrários de shell sem prompts do usuário.
Um script POC simples para testar a CVE-2021-30657 que afeta o MacOS.
Esta CVE permite contornar as verificações do gatekeeper, notarização e xprotect.
Esta vulnerabilidade ocorre quando você não define um interpretador (ou especifica um interpretador que em si é um script de shell) na primeira linha (shebang) do script principal do seu bundle executável. Isso faz com que o xpcproxy invoque o posix_spawnp para lançar o aplicativo baseado em script sem interpretador. Isso inicialmente gera um erro (sem interpretador → ENOEXEC), mas então o posix_spawnp "se recupera" e (re)executa o script... desta vez diretamente via /bin/sh.
Posteriormente, o kext AppleSystemPolicy intercepta o lançamento do processo para garantir que ele esteja em conformidade (assinado, notarizado, etc.). Mas ele verifica o /bin/sh sem nenhuma variável definida, então executa o script sem nenhuma verificação padrão.
Com base no tópico: https://twitter.com/objective_see/status/1473741597368098819
macOS Big Sur < 11.6