
Un exploit noyau expérimental basé sur webkit (Arb. R/W) pour la PS5 sur <= 4.51FW
Ce dépôt contient une implémentation expérimentale de ROP WebKit d'un exploit du noyau PS5 basé sur l'IPV6 Use-After-Free (UAF) de TheFlow, qui a été signalé sur HackerOne. La stratégie de l'exploit est en grande partie basée sur le PoC BSD/PS4 de TheFlow avec quelques modifications pour s'adapter à la pénible disposition mémoire de la PS5 (voir la section Notes de recherche pour plus de détails). Il établit une primitive de lecture arbitraire / d'écriture (semi-arbitraire). Cet exploit et ses capacités ont de nombreuses limitations, et de ce fait, il est surtout destiné aux développeurs pour jouer avec et faire de la rétro-ingénierie sur certaines parties du système.
Avec les dernières améliorations de stabilité, la fiabilité est d'environ 80 %. Ce document contiendra des informations de recherche sur la PS5, et cet exploit continuera d'être développé et amélioré au fil du temps.
Les personnes souhaitant contribuer à la recherche/développement PS5 peuvent rejoindre un discord que j'ai mis en place ici.
L'exploit devrait désormais prendre en charge les firmwares suivants :
dns.conf pour pointer manuals.playstation.net vers l'adresse IP de votre PCpython fakedns.py -c dns.confpython host.py0.0.0.0
Pour utiliser le chargeur ELF, exécutez l'exploit jusqu'à la fin. Une fois terminé, il lancera un serveur sur le port :9020. Connectez-vous et envoyez votre ELF à la PS5 sur ce port et il l'exécutera. En supposant que l'ELF ne fasse pas planter le navigateur, il peut continuer à exécuter des ELF indéfiniment.
Cet exploit fonctionne en 5 étapes et suit en grande partie la même stratégie d'exploit que le poc de theflow.
ip6_pktopts et obtenir deux sockets pointant vers le même pktopts / chevauchement (socket maître <-> socket de spray de chevauchement)pktopts sur le socket maître et le falsifier avec un spray ip6_rthdr contenant un chevauchement tclass tagué.pktopts/rthdr pour fuiter une kqueue depuis le slab 0x200 et pktopts depuis le slab 0x100.pktopts et trouver le socket de chevauchement pour utiliser IPV6_RTHDR comme primitive de lecture/écriture.La stabilité de cet exploit est d'environ 30 % 80-90 %, et présente deux points de défaillance potentiels. Par ordre décroissant de probabilité observée :
Il semble, d'après divers tests et dumps avec la primitive de lecture, que la PS5 soit revenue à une taille de page de 0x1000 par rapport au 0x4000 de la PS4.
Il semble également que sur PS5, les pages adjacentes appartiennent rarement au même slab, car vous obtenez des données très différentes dans les pages adjacentes. La disposition mémoire semble plus dispersée.
Souvent, lorsque la PS5 panique (au moins dans le contexte webkit), une sortie audio épouvantable se produit car le tampon audio est corrompu d'une manière ou d'une autre.
Parfois, cette corruption audio persiste jusqu'au prochain démarrage, sans savoir pourquoi.
Comme sur PS4, la PS5 nécessitera d'appuyer manuellement deux fois sur le bouton d'alimentation de la console pour redémarrer après un panic.
Il est normal que la PS5 mette un temps absurde à redémarrer après un panic si elle est isolée d'Internet (malheureusement). Attendez-vous à un démarrage de 3 à 4 minutes.