La vulnerabilidad permitiría a un atacante remoto añadir o modificar ficheros arbitrarios dentro del contexto de la aplicación Mail de Apple. Esto podría ser utilizado para filtrar información sensible o cambiar la configuración del cliente de correo.
El investigador Mikko Kenttälä nos explica en su blog los detalles técnicos de la vulnerabilidad, que ya fue solucionada por Apple en julio del pasado año. Si bien los detalles técnicos no han podido ser publicados hasta ahora.
Mikko participaba en el programa de Bug Bounty de Apple y estudiaba aquellas vulnerabilidades que pudieran ser explotadas sin interacción del usuario. Estas vulnerabilidades son conocidas como «zero click» o «no touch».
Decidió poner el foco en la aplicación «Mail», ya que sería más probable encontrar alguna entre el extenso código base necesario para soportar las características «legacy» de la aplicación.
Mail dispone de una opción para descomprimir adjuntos de forma automática que hayan sido comprimidos por otro usuario de Mail. Si un usuario envía una carpeta a otro usuario, la aplicación automáticamente creará un zip con las cabeceras MIME x-mac-auto-archive=yes. Cuando otro usuario de Mail reciba el correo, el adjunto se descomprimirá de forma automática.
Durante la investigación encontró que algunas partes del fichero descomprimido no se eliminaban correctamente del directorio temporal creado por Mail. No solo eso, este directorio temporal no estaba limitado al contexto de la aplicación, sino que podía ser accedido con permisos de escritura.
Aprovechando esta vulnerabilidad, un atacante podría proceder de la siguiente manera:
- El atacante envía un correo a la víctima con dos ficheros zip adjuntos: el primero incluirá un enlace simbólico llamado «Mail», que apuntará a la carpeta «$HOME/Library/Mail» de la víctima y un fichero arbitrario «1.txt».
- Mail analizará los adjuntos y buscará aquellos con la cabecera x-mac-auto-archive=yes para posteriormente descomprimirlos en el directorio «$TMPDIR/com.apple.mail/bom/». Como cabría esperar el fichero «1.txt» es copiado al directorio de mail. Sin embargo el enlace simbólico permanecerá en el directorio temporal, debido a que la limpieza de temporales no se realiza correctamente.
- El segundo zip adjunto contendrá los cambios que el atacante quiere realizar en la carpeta de Mail ($HOME/Library/Mail).
La PoC realizada por Mikko sobrescribe algunas reglas de correo para reproducir un sonido al recibir un nuevo mensaje:
- Mail/ZCZPoC
- Mail/V7/MailData/RulesActiveState.plist
- Mail/V7/MailData/SyncedRules.plist
Básicamente ‘ZCZPoc’ es un fichero de texto plano que será copiado a la carpeta ~/Library/Mail y los dos siguientes son reglas que sobreescribirán a las existentes:
RulesActiveState.plist
<dict>
<key>0C8B9B35–2F89–418F-913F-A6F5E0C8F445</key>
<true/>
</dict>
SyncedRules.plist
Criteria
<key>Criteria</key>
<array>
<dict>
<key>CriterionUniqueId</key>
<string>0C8B9B35–2F89–418F-913F-A6F5E0C8F445</string>
<key>Header</key>
<string>AnyMessage</string>
</dict>
</array>
…
<key>SoundName</key>
<string>Morse</string>
Esta regla hace «match» con cualquier correo entrante y reproducirá un sonido de código morse. En lugar de reproducir un sonido, el atacante podría redirigir los correos a una dirección bajo su control y filtrar información de la víctima.
La vulnerabilidad fue reportada de forma responsable el día 16 de mayo de 2020 y parcheada el día 15 de julio de 2020 en las actualizaciones de macOS Mojave 10.14.6, macOS High Sierra 10.13.6 y macOS Catalina 10.15.5.
El código CVE asignado a esta vulnerabilidad es CVE-2020–9922.
Más información:
Comentarios recientes