PS5 UMTX Jailbreak es un exploit ROP de WebKit de la vulnerabilidad de uso después de la liberación de la carrera UMTX (CVE-2024-43102) informada por Synacktiv.
Básicamente, se trata de una adaptación de la estrategia de explotación de fail0verflow y flatz. Abusa del UAF para obtener una asignación de lectura/escritura en una pila de subprocesos del núcleo y aprovecha las lecturas y escrituras de la tubería para establecer una primitiva de lectura/escritura arbitraria (no del todo ideal) en el núcleo.
Esta lectura/escritura se escala luego a una mejor que aprovecha un par de conectores IPv6 y un par de tuberías para una lectura/escritura estable que se puede pasar a las cargas útiles de la misma manera que era posible con el IPV6 PS5 Kernel Exploit.
En última instancia, se lanzará un cargador de carga útil para escuchar los ELF de carga útil en el puerto 9021. Recomiendo el PS5 Payload Dev SDK, ya que debería tener compatibilidad total con este cargador cuando se agreguen compensaciones de kernel.
Esta vulnerabilidad afecta al firmware 1.00 al 7.61, sin embargo, el firmware >= 3.00 parece tener mitigaciones adicionales que requieren ajustes del exploit para que funcione. Como principalmente solo me interesan los firmwares inferiores, este exploit no es compatible con FW >= 3.00 por el momento.
Además, la vulnerabilidad de WebKit con la que encadenamos se corrigió en 6.00, por lo que se requerirá otro exploit de WebKit que logre lectura/escritura en el espacio de usuario para estos sistemas. Nuevamente, como no estoy enfocado en firmwares superiores, esto queda sin completar en este momento.
Para FW < 3.00, todo lo que se debería requerir son los desplazamientos de gadget. Los siguientes firmwares son compatibles actualmente:
- 1.05
- 1.10
- 1.11
- 1.12
- 1.13
- 1.14
- 2.00
- 2.20
- 2.25
- 2.26
- 2.30
- 2.50
Incluido actualmente
- Obtiene lectura/escritura arbitraria del kernel
- Habilita el menú de configuración de depuración (nota: deberá salir completamente de la configuración y volver a ingresar para verlo).
- Obtiene privilegios de root y sale de la zona protegida/cárcel.
- Ejecuta el cargador ELF de John Tornblom en el puerto 9021 para que se ejecuten las cargas útiles.
Limitaciones
- Este exploit logra lectura/escritura, pero no ejecución de código. Esto se debe a que actualmente no podemos volcar el código del kernel para gadgets, ya que las páginas .text del kernel están marcadas como Memoria de solo ejecución (XOM). ¡Intentar leer punteros .text del kernel provocará pánico!
- De acuerdo con lo anterior y el hipervisor (HV) que aplica la protección contra escritura del kernel, este exploit tampoco puede instalar parches ni ganchos en el espacio del kernel.
- La integridad del flujo de control (CFI) de grano fino basada en Clang está presente y se aplica.
- La prevención/ejecución de acceso en modo supervisor (SMAP/SMEP) no se puede deshabilitar debido al HV.
- FW >= 6.00 requiere un nuevo exploit de WebKit y, por lo tanto, no es compatible.
- FW >= 3.00 requiere ajustes de estrategia para explotar UAF.
Cómo usar
- Configura fakedns a través de dns.conf para apuntar manuals.playstation.net a la dirección IP de tu PC
- Ejecuta fake dns: python fakedns.py -c dns.conf
- Ejecuta servidor HTTPS: python host.py
- Ve a la configuración de red avanzada de PS5 y configura el DNS primario a la dirección IP de tu PC y deja el secundario en 0.0.0.0
- A veces, el manual aún no se carga y es necesario reiniciar, no estoy seguro de por qué es realmente extraño
- Ve al manual del usuario en la configuración y acepta el mensaje de certificado no confiable, ejecuta
- Opcional: descomenta el código de volcado de kernel .data y ejecuta el script de servidor de volcado (nota: la dirección/puerto debe sustituirse en exploit.js).
PS5 UMTX Jailbreak ha sido creado por PS5Dev.
Que novedades incluye la versión 1.2
Released
- Se agregó compatibilidad con FW 5.00, 5.02, 5.10 y 5.50
- Se agregó compatibilidad con FW 4.00, 4.02, 4.03 y 4.50
- Se agregó compatibilidad con FW 3.00 y 3.20
- Se agregó compatibilidad con FW de fábrica 2.70
- Se agregó compatibilidad con FW 1.00 y 1.02
- Se agregó código para facilitar la portabilidad