Detalles de la vulnerabilidad
Parallels Desktop para Mac presenta una falla que permite a una cuenta local ordinaria ejecutar código como root, el nivel de acceso más alto en un Mac, según informó esta semana la empresa de software JFrog.
El ataque requiere que ya se esté ejecutando código en la máquina como usuario normal, por lo que no funciona a través de la red. JFrog afirma que la solución está en Parallels Desktop 27, una versión que los Mac con Intel no pueden instalar.
Yuval Moravchick, quien lidera el equipo de investigación de vulnerabilidades de JFrog, publicó el hallazgo el martes y lo llama ParaShells. El fallo está catalogado como CVE-2026-90894, un identificador asignado por JFrog, y la empresa lo califica con 7.8 sobre 10.
Parallels Desktop ejecuta Windows y Linux dentro de máquinas virtuales en un Mac. Instala un servicio en segundo plano llamado prl_disp_service que se ejecuta como root, porque su trabajo incluye configurar la red del host y descomprimir paquetes de máquinas virtuales.
El fallo está en el lado Mac del producto, por lo que la máquina en riesgo es el propio Mac y no las máquinas virtuales que contiene.
En la máquina que JFrog probó, el socket al que escucha el servicio era escribible por todos, lo que significa que cualquier programa en el Mac podía conectarse a él. La llamada de inicio de sesión que sigue, PrlSrv_LoginLocal, solo verifica las credenciales que el kernel informa para el proceso que se conecta. No requiere una firma de código de Parallels y funciona para una cuenta que no es administrador.
Para instalar una aplicación de máquina virtual, el servicio construye su comando de descompresión como una sola línea de texto: tar -xf "%1" -C "%2". Luego divide ese texto nuevamente en argumentos separados usando QProcess::splitCommand de Qt.
El llamador elige parte de ese texto, porque selecciona la carpeta en la que se colocará la nueva máquina virtual. Una comilla doble dentro del nombre de la carpeta cierra el entrecomillado antes de tiempo, por lo que lo que el atacante coloque después se convierte en opciones adicionales para tar en lugar de formar parte de una ruta.
La opción que JFrog utilizó fue –use-compress-program, que indica a tar de macOS que entregue el archivo a otro programa primero. Como tar se ejecuta como root en este caso, ese programa también se ejecuta como root. El script de prueba de JFrog escribió una regla de sudo sin contraseña y abrió una shell de root.
JFrog demostró esto en Parallels Desktop 26.4.0, build 57513, en un Mac con chip Apple silicon. Afirma que una instalación normal ya proporciona todo lo que el ataque necesita: el producto instalado, el servicio en ejecución con su socket presente y una cuenta local con pocos privilegios. No es necesario que haya una máquina virtual en ejecución.
La empresa no verificó todas las compilaciones. "No hicimos pruebas de regresión en todas las compilaciones anteriores para este informe", dijo, y aconsejó a los lectores: "Traten cualquier instalación de Desktop que aún exponga la misma plantilla de extracción InstallAppliance y el socket del despachador escribible por todos como dentro del alcance".
JFrog también señaló que la edición de App Store puede iniciar sus servicios de manera diferente, aunque describió el riesgo subyacente como el mismo tipo de problema. No reporta ataques que utilicen el fallo, y Parallels no ha publicado nada al respecto.
La razón por la que un fallo local es importante aquí, según JFrog, es que el código que se ejecuta como usuario normal es común en estas máquinas. Una fórmula maliciosa de Homebrew, un script de instalación de npm envenenado o un trabajo de compilación comprometido calificarían, al igual que una cuenta débil en un Mac compartido de laboratorio o capacitación.
La solución y qué compilación la incluye
JFrog dice que el cambio que corrige el fallo está en Parallels Desktop 27. Su aviso lista todo lo anterior a 27.0.0 como afectado, su informe nombra 27.0.0 como la versión corregida, y el registro CVE lista 27.0.0 como no afectada.
Las fechas no coinciden. La propia cronología de divulgación de JFrog da el 1 de septiembre de 2026 como el día en que la solución se distribuyó en 27.0.0, pero las notas de la versión de Parallels sitúan 27.0.0 el 25 de agosto de 2026 y 27.0.1 el 1 de septiembre de 2026.
Instalar la versión más reciente de esa línea cubre ambas interpretaciones, porque 27.0.1, build 58670, se distribuyó después de ambas fechas. Parallels no ha publicado una declaración sobre CVE-2026-90894, por lo que no hay un registro del proveedor que indique qué compilación incorpora el cambio.
Parallels dice que no discute vulnerabilidades hasta que se haya publicado una solución. Su lista de correcciones de seguridad, que asigna cada fallo a la versión que lo repara, no se ha revisado desde mayo de 2025 y no incluye esta.
Quién no puede instalarla
Parallels Desktop 27 requiere un Mac con chip Apple silicon. Sus requisitos del sistema listan solo Apple silicon para el procesador y macOS Sonoma 14.7 o posterior para el sistema operativo. En versiones anteriores de macOS, incluida Ventura 13, el instalador configura una versión anterior del producto.
Parallels eliminó el soporte para Mac con Intel en la versión 27 y dice que el cambio sigue los planes de Apple y no los suyos. macOS 26 Tahoe fue la última versión de macOS creada para Mac con Intel y macOS 27 es solo para Apple silicon, por lo que un producto creado para macOS 27 no puede instalarse en hardware Intel.
A los usuarios de Intel se les indica que se queden en Parallels Desktop 26. "Parallels Desktop 26 es totalmente compatible con las computadoras Mac con Intel hoy, y eso no cambiará", escribió la compañía el 25 de agosto, tres semanas antes de que este fallo se hiciera público, y añadió que los usuarios de Intel pueden seguir usando la versión 26 y "esperar futuras actualizaciones de seguridad y mantenimiento".
Esa línea no tiene esta corrección, según JFrog. "Los hosts que permanecen en la línea 26.x, incluida la 26.4.2, no tienen ese cambio de extracción", dice su aviso. JFrog no dice que probó 26.4.1 o 26.4.2, y su informe señala que no verificó compilaciones anteriores.
Las notas de la versión 26 de Parallels tampoco describen dicha corrección. La compilación más reciente de esa línea, 26.4.2, salió el 8 de septiembre de 2026, y sus notas enumeran un solo cambio, para un problema de implementación en la edición Enterprise.
Esas notas son breves y generalmente solo indican que una actualización "aborda los problemas generales de estabilidad y seguridad", por lo que no descartan una reparación que nunca se documentó.
Un Mac que no puede ejecutar la versión 27, por lo tanto, no tiene una compilación que JFrog describa como corregida. Parallels no ha dicho si el cambio llegará a la versión 26, y nada de lo que ha publicado establece una fecha.
Cómo verificar y qué hacer ahora
Dos comandos de solo lectura muestran si un Mac está expuesto. El primero informa la versión instalada; el segundo informa si el socket del servicio está abierto a todos los procesos locales.
- defaults read "/Applications/Parallels Desktop.app/Contents/Info" CFBundleShortVersionString
- ls -l /var/run/prl_disp_service.socket
JFrog dice que un socket que muestre srwxrwxrwx en una compilación igual o cercana a 26.4.0 debe tratarse como expuesto hasta que se confirme una compilación parcheada. Ambos comandos solo muestran la exposición, y ninguno indica si alguien ha utilizado el fallo.
Hasta que todas las máquinas estén en una compilación corregida, el consejo de JFrog es limitar quién puede iniciar sesión localmente, porque cualquier cuenta local en una instalación vulnerable puede acceder al servicio. También sugiere listar cada Mac en la organización que tenga Parallels Desktop instalado.
Los administradores que envían actualizaciones a través de la gestión de dispositivos deben verificar primero sus reglas de versión. Parallels advierte que una política que distribuya automáticamente nuevas versiones principales intentará instalar la versión 27 en Mac con Intel y fallará, y aconseja mantener esas máquinas en la versión 26.
Ninguno de los materiales publicados dice si instalar una compilación corregida elimina el acceso que un atacante ya haya obtenido. JFrog señala que un atacante que alcanza root puede mantener un punto de apoyo a través de launchd, que una actualización del producto no eliminaría.




















Deja una respuesta