Jailbreak PS4 4.01 et correctif de la faille avec la maj 4.05 ?

Apercu: 

Une équipe chinoise a dévoilé un jailbreak (kernel) PS4 4.01 en vidéo, et Sony a semble-t-il corrigé dans l'urgence cette faille dans une mise à jour 4.05 de la console.


C'est via une présentation à Shangai que Taichin Tech ont présenté une vidéo montrant une PS4 lançant Linux, ainsi que super mario.

Le lendemain, Sony publie la mise à jour 4.05 de la Playstation 4. Très probablement dans l'urgence du correctif de la faille présentée par l'équipe chinoise.
Comment peuvent-il avoir déjà corrigé cette faille ? Tout simplement car les "règles" de la compétition de hacking au cours duquel cette équipe chinoise a présenté son hack implique de devoir fournir les détails de la faille aux entreprises concernées.

Il s'agit en fait de deux failles, une WebKit permettant de lancer du code userland, et une seconde, kernel, permettant d'avoir tous les droits (ou presque) sur la console, qui a permis de lancer Linux ici.

Nous savons que la faille kernel est la CVE-2016-1885, une faille FreeBSD dévoilée en avril qui a déjà été corrigée, mais ce correctif n'a pas bloqué toutes les façons de déclencher la faille. Pour savoir comment exploiter cette faille, c'est simple, il suffit de regarder comment FreeBSD a corrigé cette nouvelle version de l'exploit :

Modified:
  stable/9/sys/amd64/amd64/sys_machdep.c
Directory Properties:
  stable/9/   (props changed)
  stable/9/sys/   (props changed)

Modified: stable/9/sys/amd64/amd64/sys_machdep.c
==============================================================================
--- stable/9/sys/amd64/amd64/sys_machdep.c      Tue Oct 25 17:16:08 2016        
(r307940)
+++ stable/9/sys/amd64/amd64/sys_machdep.c      Tue Oct 25 17:16:58 2016        
(r307941)
@@ -612,6 +612,8 @@ amd64_set_ldt(td, uap, descs)
                largest_ld = uap->start + uap->num;
                if (largest_ld > max_ldt_segment)
                        largest_ld = max_ldt_segment;
+               if (largest_ld < uap->start)
+                       return (EINVAL);
                i = largest_ld - uap->start;
                mtx_lock(&dt_lock);
                bzero(&((struct user_segment_descriptor *)(pldt->ldt_base))
@@ -624,7 +626,8 @@ amd64_set_ldt(td, uap, descs)
                /* verify range of descriptors to modify */
                largest_ld = uap->start + uap->num;
                if (uap->start >= max_ldt_segment ||
-                   largest_ld > max_ldt_segment)
+                   largest_ld > max_ldt_segment ||
+                   largest_ld < uap->start)
                        return (EINVAL);
        }

L'équipe chinoise explique s'être aidés des outils de Fail0verflow pour lancer Linux.

Quoi qu'il en soit, ils n'ont pas diffusé leur exploit pour l'instant, il faut donc que d'autres hackeurs se penchent sur cette faille linux ainsi que trouver la faille WebKit utilisée.

wololo.netSource : wololo.net

1 commentaire

19
nov

super merci