
Script proof-of-concept che dimostra come aggirare i controlli di macOS Gatekeeper, notarizzazione e XProtect sfruttando CVE-2021-30853, consentendo l'esecuzione di payload shell arbitrari senza richieste all'utente.
Uno script POC semplice per testare la CVE-2021-30657 che interessa MacOS.
Questa CVE consente di bypassare i controlli di gatekeeper, notarizzazione e xprotect.
Questa vulnerabilità si verifica quando non si definisce un interprete (o si specifica un interprete che è esso stesso uno script di shell) nella prima riga (shebang) dello script principale del proprio bundle eseguibile. Questo causa l'invocazione di posix_spawnp da parte di xpcproxy per avviare l'applicazione basata su script senza interprete. Inizialmente si verifica un errore (nessun interprete → ENOEXEC), ma poi posix_spawnp si "riprende" e (ri)esegue lo script... questa volta direttamente tramite /bin/sh.
Successivamente, il kext AppleSystemPolicy intercetta l'avvio del processo per garantirne la conformità (firmato, notarizzato, ecc.). Ma controlla /bin/sh senza alcuna variabile impostata, quindi esegue lo script senza alcun controllo predefinito.
Basato sul thread: https://twitter.com/objective_see/status/1473741597368098819
macOS Big Sur < 11.6