
Script de preuve de concept qui démontre le contournement des vérifications de Gatekeeper, de la notarisation et de XProtect sur macOS en exploitant CVE-2021-30853, permettant l'exécution de charges utiles shell arbitraires sans invite utilisateur.
Un script POC simple pour tester la CVE-2021-30657 affectant MacOS.
Cette CVE permet de contourner les contrôles de gatekeeper, de notarisation et de xprotect.
Cette vulnérabilité se produit lorsque vous ne définissez pas d'interpréteur (ou que vous spécifiez un interpréteur qui est lui-même un script shell) dans la première ligne (shebang) du script principal de votre bundle exécutable. Cela amène xpcproxy à invoquer posix_spawnp pour lancer l'application basée sur un script sans interpréteur. Cela génère initialement une erreur (pas d'interpréteur → ENOEXEC), mais ensuite posix_spawnp « récupère » et (ré)exécute le script... cette fois directement via /bin/sh.
Ensuite, le kext AppleSystemPolicy intercepte le lancement du processus pour s'assurer qu'il est conforme (signé, notarisé, etc.). Mais il vérifie /bin/sh sans aucune variable définie, donc exécute le script sans aucun contrôle par défaut.
Basé sur le fil : https://twitter.com/objective_see/status/1473741597368098819
macOS Big Sur < 11.6