
Análisis técnico y exploit de prueba de concepto para CVE-2025-61228, una vulnerabilidad de escalada de privilegios en el mecanismo de actualización automática de SuperDuper!, con un desglose detallado del vector de ataque y guía de mitigación.
Este problema parece ser peor de lo que el desarrollador sugiere, así que no quiero que esta parte se pierda en la maleza. El desarrollador señaló en su blog:
Esto solo puede suceder si un programa que se ejecuta en su sistema está buscando a SuperDuper para realizar una actualización, se presenta una actualización real por medios legítimos y usted hace clic en Actualizar.
Esto no es realmente cierto; explotar esta vulnerabilidad no requiere que se presente una actualización real por medios legítimos. Nunca, jamás acepte una actualización proporcionada por SuperDuper 3.10 y anteriores. Explico esto con más detalle a continuación.
También es importante entender que esta vulnerabilidad no se limita a la escalada de privilegios, sino que también implica una subversión de los controles de privacidad. Ese detalle parece haberse omitido en la publicación del blog del desarrollador.
Del blog del desarrollador:
Nuestro mecanismo de actualización automática puede ser secuestrado y convencido de instalar un paquete que no es SuperDuper.
Aunque firmamos y notarizamos nuestro paquete de instalación, Gatekeeper no está verificando esa notarización cuando es instalado por el instalador de paquetes de macOS. Por lo tanto, la descarga podría ser cambiada, y nosotros instalaríamos eso en su lugar. Dado que la instalación se realiza con privilegios elevados, eso podría permitir que un programa malicioso de un tercero, que usted también tendría que instalar, obtenga acceso de administrador a su sistema.
Del CVE:
Un problema en Shirt Pocket SuperDuper! V.3.10 y anteriores permite a un atacante local ejecutar código arbitrario a través del mecanismo de actualización de software.
Este autor no es el descubridor de la vulnerabilidad, quien es identificado por el desarrollador de SuperDuper como "investigador de seguridad anónimo". No reclamo crédito por descubrir esta vulnerabilidad, solo me tomé cierto interés en realizar un análisis técnico de la misma.
Puntuación CVSS 3.1: 7.8 Alta (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Para evitar esta vulnerabilidad, elimine la aplicación SuperDuper! o aplique la actualización 3.11.
Advertencia: Debe descargar la actualización directamente desde el sitio web del desarrollador para evitar esta vulnerabilidad.
Este análisis de explotación y prueba de concepto se proporciona solo con fines educativos. Úselo bajo su propio riesgo.
En lugar de implementar una solución de actualización de software de código abierto que haya sido probada por cientos de desarrolladores y profesionales de seguridad, los desarrolladores de SuperDuper crearon su propio mecanismo de actualización de software basado en scripts de shell inseguros que se ejecutan con privilegios de root y tienen acceso total al disco. Al no autenticar el software que se instala durante la actualización, SuperDuper es engañado para que instale el software de un atacante. La corrección del desarrollador solo aborda el aspecto de autenticación de esta vulnerabilidad, no aborda las vulnerabilidades inherentes que resultan del uso de scripts de shell para facilitar el proceso de actualización.
El comentario del desarrollador "Gatekeeper no está verificando esa notarización" es engañoso. GateKeeper entra en juego cuando intenta abrir algo que se descargó en un navegador, pero eso no es aplicable en el mecanismo interno de actualización de software de una aplicación. Es responsabilidad 100% del desarrollador validar cualquier cosa que su software descargue e instale en su computadora; no deje que este desarrollador lo engañe para que crea que esto es una falla de GateKeeper. Llegando al corazón del exploit, un atacante puede engañar a SuperDuper para que instale un paquete alternativo, y eso sucede con privilegios elevados. Presumiblemente también se ejecutaría con acceso completo al disco, porque SuperDuper requiere acceso completo al disco para hacer cualquier cosa.
El blog del desarrollador también afirma:
Esto solo puede suceder si un programa que se ejecuta en su sistema está buscando a SuperDuper para realizar una actualización, se presenta una actualización real por medios legítimos y usted hace clic en Actualizar.
Con ese comentario, asumí que probablemente no sería posible reproducir este exploit porque debería implicar cambios del lado del servidor en el mecanismo de actualización que se habrían realizado junto con la publicación del parche 3.11. En otras palabras, para evitar que las versiones anteriores del software se vean afectadas por esta vulnerabilidad, seguramente han deshabilitado el mecanismo de actualización, ¿verdad? Bueno... descargué una versión anterior de SuperDuper, y cuando la abrí, inmediatamente me recibió una notificación de actualización† — a un clic de una posible explotación. Encontré esto muy intrigante: ¿cómo se protegerá a alguien que use una versión anterior de la aplicación de esta vulnerabilidad si el mecanismo de actualización automática no está deshabilitado? (esto está relacionado con la "alerta" que mencioné al principio de este artículo, retomaré esta pregunta al final)
† Más o menos... El resultado fue bastante incómodo. No había descripción de la actualización ni aviso de seguridad, la ventana estaba en blanco con un botón Omitir y Actualizar. Por lo tanto, los usuarios de versiones anteriores no solo no están protegidos del exploit al tener el mecanismo de actualización deshabilitado, sino que tampoco se les informa del problema a través del mecanismo de actualización.
Seguí adelante. Cuando aplicas la actualización, los mecanismos internos se registran útilmente en el registro de SuperDuper, así que comenzaremos allí para ver cómo funciona:
Transcript : UpgradeTranscript.plist
Ext Logging : Disabled
PHASE: 1. Upgrade Application
...ACTION: Downloading upgrade package
......COMMAND => Downloading update package...
......COMMAND => Preparing update package
...ACTION: Installing upgrade package
......COMMAND => Preserving SDAgent owner and mode bits
......COMMAND => Installing upgrade package
installer[3148] <Debug>: Product archive /tmp/SuperDuper!.pkg trustLevel=350
Muchas aplicaciones de Mac que viven fuera de la Mac App Store utilizan el framework de código abierto Sparkle para gestionar las actualizaciones de software de forma segura. SuperDuper no. Podemos ver aquí que crearon el suyo propio, y este es un gran ejemplo de por qué eso suele ser una mala elección. Los mecanismos de actualización de software son objetivos principales para exploits, por lo que requieren mucho tiempo y experiencia para mantenerlos seguros. "UpgradeTranscript.plist" es una referencia a un archivo dentro de la aplicación SuperDuper que describe una serie de comandos de Terminal que SuperDuper utiliza para descargar y aplicar la actualización:
cat /Applications/SuperDuper\!.app/Contents/Resources/Transcripts/UpgradeTranscript.plist
<?xml version="1.0" encoding="UTF-8"?>
...
/usr/bin/curl SDHTTPproxy.Host --silent --show-error --output /tmp/superduper.tar.gz -L SDdownloadURL
cd /tmp; if [ -d superduper_install ]; then /bin/rm -rf superduper_install; fi; /bin/mkdir superduper_install; /usr/bin/tar xzf superduper.tar.gz; /bin/rm /tmp/superduper.tar.gz; if [ -d '/Library/Receipts/SuperDuper!.pkg' ]; then /bin/rm -rf '/Library/Receipts/SuperDuper!.pkg'; fi;
/usr/sbin/installer -allow -verboseR -dumplog -pkg '/tmp/SuperDuper!.pkg' -target / >&1 2>&1;