Investigadores de Perception Point escriba sobre CVE-2022-22583, un sucesor de Shrootless que podría permitir a los atacantes eludir la Protección de integridad del sistema (SIP) de Mac. Se parchó ayer en macOS Monterey 12.2, macOS Big Sur 11.6.3 y la Actualización de seguridad 2022-001 Catalina. Apple compartió el crédito de este CVE entre tres investigadores: Mickey Jin (@patch1t), Ron Hass (@ronhass7) de Perception Point y un investigador anónimo.
Actualización sin raíz
Perception Point dice que este nuevo día cero es un sucesor del que Microsoft encontró el año pasado, denominado “shrootless”. Los investigadores de Microsoft notaron que cuando el usuario instala un paquete firmado por Apple, el servicio “system_installd” lo ejecuta automáticamente. Si el paquete contiene scripts previos o posteriores a la instalación, también se ejecutan mediante “system_installd” y heredan el derecho “com.apple.rootless.install.heritable”, que permite a estos scripts eludir por completo las restricciones del sistema de archivos SIP.
Si uno de los scripts previos y posteriores a la instalación fuera un script zsh, “system_installd” ejecutaría zsh (z-shell), lo que generaría el archivo “/etc/zshenv”. SIP no restringe este archivo y puede ser modificado por root. Cualquier código dentro de él se ejecutará y, por lo tanto, omitirá SIP cada vez que se instale un paquete firmado por Apple con un script zsh. Apple lo solucionó impidiendo que zsh obtuviera “/etc/zshenv”.
Perception Point encontró un directorio macOS /tmp que no está restringido por SIP. Estos son los pasos que tomó el equipo:
- Cree un archivo de imagen virtual y móntelo en “/private/tmp”.
- Instale un paquete firmado por Apple con scripts posteriores a la instalación.
- Espere a que el instalador finalice la extracción del directorio de scripts y recopile las partes aleatorias de la ruta extraída.
- Desmonte el archivo de imagen, volviendo así al contenido de “/private/tmp” antes de la extracción.
- Cree el directorio de scripts nosotros mismos (con la ruta aleatoria que recopilamos anteriormente) y deposite allí los scripts que queramos.
En macOS 12.2, Apple cambió el destino de extracción a un nuevo directorio: “/Library/Apple/System/Library/InstallerSandboxes”. Apple también evita los intentos de montaje en el directorio “/Library/ cuando SIP está habilitado.