
PoC de solo lectura para CVE-2026-65400 — bypass de SRP previo a la autenticación en Screen Sharing de macOS (screensharingd) que permite la lectura de archivos como root. Corregido en macOS 26.6.1 / 15.7.9 / 14.8.9.
Prueba de concepto de solo lectura. Demuestra la omisión de autenticación leyendo un fichero solo-root de un host vulnerable. No escribe nada en el objetivo: ni LaunchDaemon, ni archivo de inicio del shell, ni crontab, ni cadena de RCE.

Ejecutado contra un Mac de mi propiedad (macOS Tahoe 26.5.2, sin parchear). Número de serie censurado.
screensharingd — el demonio detrás de Compartir Pantalla / Apple Remote Management de macOS
(TCP 5900) — puede ser engañado para que trate una conexión no autenticada como
autenticada. Sin nombre de usuario, sin contraseña, sin interacción en el objetivo.
La ruta de autenticación nativa del demonio usa SRP (Secure Remote Password). Su validador de longitud de frame devuelve un estado de éxito obsoleto, por lo que la conexión se marca como autenticada antes de que se haya probado credencial alguna. El lenguaje del aviso de Apple — "improved state management" — coincide con esto: la criptografía nunca se rompió, la máquina de estados que la rodea sí.
Una vez superada esa puerta, la sesión continúa en claro, y los helpers privilegiados de copia
de ficheros (SSFileCopySender / SSFileCopyReceiver) tienen Full Disk Access. Eso produce
pre-auth lectura y escritura arbitraria de ficheros como root, saltándose TCC — y desde ahí,
la ejecución remota de código está a un LaunchDaemon o archivo de inicio del shell de distancia.
Pre-auth. Remoto. Root. Configuración predeterminada, en el momento en que Compartir Pantalla está activado.
| macOS | Vulnerable | Corregido (2026-08-06) |
|---|---|---|
| Tahoe 26 | ≤ 26.6 | 26.6.1 |
| Sequoia 15 |
Requiere que Compartir Pantalla / Remote Management esté habilitado y sea accesible. Blindar las cuentas no ayuda — eliminar usuarios, desactivar el VNC heredado y rotar contraseñas no ofrecen ninguna protección, porque el fallo se alcanza antes de la autenticación.
Esto no es teórico. Se está explotando en la naturaleza.
Actividad observada en la naturaleza contra el puerto 5900 expuesto a Internet: se dejó una clave pública SSH para persistencia, se limpiaron los registros y el historial del shell, se modificaron las reglas del filtro de paquetes y se desplegó el minero de Monero XMRig 6.26.0.
Python 3, solo biblioteca estándar. Sin dependencias.
python3 poc_screensharing.py <IP> # reads /etc/sudoers
python3 poc_screensharing.py <IP> /etc/passwd
python3 poc_screensharing.py <IP> /etc/master.passwd -r 50
-p, --port target port (default 5900)
-u, --user username sent in the SRP step-1 frame (default root)
-r, --retries retry count (default 25) — the bug is heap-racy
-t, --timeout socket timeout in seconds (default 8.0)
SecurityResult != 0 o una lista
de tipos de seguridad sin SRP (36) detiene el bucle e informa que el host no es vulnerable.Evento de Endpoint Security ES_EVENT_TYPE_NOTIFY_SCREENSHARING_ATTACH:
authentication_type: SRP sin un componente RSA — las sesiones legítimas informan
RSA-SRP. Este es el indicador de mayor señal.root — la cuenta está deshabilitada por defecto en macOS.SSFileCopySender ejecutándose con UID/GID 0 80, tocando rutas del sistema mediante
_LOOKUP / _OPEN / _STAT / _CLOSE durante una sesión de Compartir Pantalla.La investigación no es mía. Este repositorio es una reproducción y un informe.
Solo para pruebas de seguridad autorizadas, validación defensiva y educación. Ejecútalo contra sistemas de tu propiedad o para los que tengas permiso explícito por escrito para probar. La captura anterior es un Mac de mi propiedad. Usarlo contra sistemas que no controlas es ilegal en la mayoría de las jurisdicciones. El autor no acepta ninguna responsabilidad por mal uso.
Publicado solo después de que el parche del proveedor estuviera disponible públicamente, y deliberadamente limitado a una primitiva de lectura.
screensharingd, el demonio de Compartir Pantalla de macOS (TCP 5900), puede darse
por autenticado sin que nadie haya presentado credenciales. Su validador de longitud de
frame en el flujo SRP devuelve un estado de éxito obsoleto, así que la conexión se
trata como autenticada antes de tiempo. Apple lo describe como "improved state
management": la criptografía nunca se rompió, se rompió la máquina de estados que la rodea.
A partir de ahí la sesión continúa en claro y los helpers privilegiados de copia de
ficheros (SSFileCopySender / SSFileCopyReceiver) tienen Full Disk Access, lo que da
lectura y escritura arbitraria como root saltándose TCC — y de ahí a RCE hay un
LaunchDaemon de distancia. Pre-auth, remoto, root y en configuración por defecto.
Este PoC es de solo lectura: demuestra el bypass leyendo un fichero que solo root puede leer y no escribe nada en el objetivo.
Qué hacer: actualizar a 26.6.1 / 15.7.9 / 14.8.9 — es el único arreglo real. Si no puedes, desactiva Compartir Pantalla. Rotar contraseñas o eliminar cuentas no sirve, porque el fallo se alcanza antes de la autenticación. Y que el 5900 no esté expuesto a Internet.
Úsalo solo contra equipos de tu propiedad o con autorización por escrito.
| ≤ 15.7.8 |
| 15.7.9 |
| Sonoma 14 | ≤ 14.8.8 | 14.8.9 |
| Fecha | Evento |
|---|
| 2026-07-27 | macOS 26.6 parchea CVE-2026-43760 (contexto confundido post-autenticación), perturbando la ruta pre-auth |
| 2026-07-29 | bynar.io publica el informe del 43760; Pedro Vilaça (fG!) revela el fallo pre-auth con un PoC ofuscado |
| 2026-08-01/02 | bl4sty hace ingeniería inversa del PoC, recupera el formato de red, construye lectura/escritura + RCE |
| 2026-08-06 | Apple parchea explícitamente CVE-2026-65400 |
| 2026-08-14 | CISA recalifica 7.1 → 9.8 Crítico |
| 2026-08-18 | Añadido al catálogo CISA KEV |