Le code source du kernel exploit PSP de Qwikrazor87 expliqué

Le développeur Guidobot, à l’origine du 138Menu que vous utilisez peut-être sur votre PS Vita, a posté avant-hier sur les forums de Wololo une explication relativement détaillée à propos du dernier exploit kernel PSP découvert par Qwikrazor87 sur les PS Vita en firmware 3.36 dont le code source a été révélé il y a 2 jours par l’auteur lui-même. Une petite traduction française s’impose…

Suivez le Guidobot !

Suivez le Guidobot !

Vous vous souvenez peut-être que nous évoquions une situation de compétition (ou race condition), cela semble être confirmé. Tout d’abord, sachez qu’une situation de compétition est une sorte de faille présente dans un système qui ne se manifeste que lorsque plusieurs “événements” causés par des acteurs (dont au moins un a la capacité de modifier l’état de la ressource impliquée) interviennent dans un ordre inattendu. Dans les codes multi-tâches (multithread), cela peut être assez commun si le verrouillage adéquat de chaque ressource partagée n’est pas fait correctement par les tâches (threads).

Dans un tel cas, la fonction exploitée vérifie que les paramètres sont valides avant de continuer, mais avant d’utiliser ces valeurs, un autre thread “malveillant” peut venir modifier le contenu de certains paramètres avec le fameux contenu exploité.

Explications en images

Explications en images

Ici, la fonction donnant l’accès au noyau (kernel) s’appelle sceMeVideo_driver_4D78330C (à comprendre comme étant le “do_some_stuff(data)” sur l’illustration ci-dessus), et la fonction avec la situation de compétition est le fameux scevideoCodecStop (le “myfonction” sur l’illustration). Vous avez une idée générale du fonctionnement de ce kernel exploit, si vous souhaitez connaître tout sur tout, nous vous invitons à voir les explications du code source plus bas. ;)