Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2019-2215 — Preuve de concept d'exploit pour CVE-2019-2215, une vulnérabilité de type utilisation après libération dans le pilote binder d'Android permettant l'escalade de privilèges locale sur les appareils vulnérables. | Kitploit
Outils/GitHubGitHub/codecat007/cve-2019-2215
Sécurité AndroidEscalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationSécurité MobileExploitation de Binaires
GitHubcodecat007/cve-2019-2215

CVE-2019-2215

Preuve de concept d'exploit pour CVE-2019-2215, une vulnérabilité de type utilisation après libération dans le pilote binder d'Android permettant l'escalade de privilèges locale sur les appareils vulnérables.

Voir le dépôt
2il y a 6 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2019-2215

Le problème suivant existe dans la branche android-msm-wahoo-4.4-pie de https://android.googlesource.com/kernel/msm (et peut-être d'autres) :

Il y a une use-after-free du membre wait dans la structure binder_thread du pilote binder situé dans /drivers/android/binder.c.

Comme décrit dans le commit en amont : « binder_poll() passe la file d'attente thread->wait qui peut être mise en veille pour le travail. Lorsqu'un thread qui utilise epoll se termine explicitement avec BINDER_THREAD_EXIT, la file d'attente est libérée, mais elle n'est jamais supprimée de la structure de données epoll correspondante. Lorsque le processus se termine ensuite, le code de nettoyage epoll tente d'accéder à la liste d'attente, ce qui entraîne une use-after-free. »

La preuve de concept suivante montrera le crash UAF dans une compilation du noyau avec KASAN (d'après le rapport de bogue initial en amont sur https://lore.kernel.org/lkml/[email protected]/) : #include <fcntl.h> #include <sys/epoll.h> #include <sys/ioctl.h> #include <unistd.h>

root@kitploit:~
    #define BINDER_THREAD_EXIT 0x40046208ul

    int main()
    {
            int fd, epfd;
            struct epoll_event event = { .events = EPOLLIN };

            fd = open("/dev/binder0", O_RDONLY);
            epfd = epoll_create(1000);
            epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &event);
            ioctl(fd, BINDER_THREAD_EXIT, NULL);
    }

Ce problème a été corrigé en décembre 2017 dans le noyau LTS 4.14 [1], le noyau AOSP android 3.18 [2], le noyau AOSP android 4.4 [3] et le noyau AOSP android 4.9 [4], mais le Pixel 2 avec le dernier bulletin de sécurité est toujours vulnérable selon l'examen du code source.

Les autres appareils qui semblent vulnérables selon l'examen du code source sont (en se référant aux versions 8.x sauf indication contraire) :

  1. Pixel 2 avec Android 9 et Android 10 preview (https://android.googlesource.com/kernel/msm/+/refs/heads/android-msm-wahoo-4.4-q-preview-6/)
  2. Huawei P20
  3. Xiaomi Redmi 5A
  4. Xiaomi Redmi Note 5
  5. Xiaomi A1
  6. Oppo A3
  7. Moto Z3
  8. Téléphones LG sous Oreo (exécutent le même noyau d'après le site web)
  9. Samsung S7, S8, S9

Nous avons des preuves que ce bogue est utilisé dans la nature. Par conséquent, ce bogue est soumis à un délai de divulgation de 7 jours. Après 7 jours écoulés ou après qu'un correctif a été largement disponible (selon la première éventualité), le rapport de bogue deviendra visible pour le public.

Confirmé que cette preuve de concept fonctionne sur Pixel 2 avec la build walleye_kasan-userdebug 10 QP1A.191105.0035899767, provoquant un crash KASAN. Code C de la preuve de concept et new.out joints. Sortie console KASAN jointe.

J'ai reçu des informations techniques de TAG et de parties externes concernant une exploitation Android attribuée au groupe NSO. Ces détails incluaient des faits sur le bogue et la méthodologie d'exploitation, y compris mais sans s'y limiter :

  • Il s'agit d'une élévation de privilèges du noyau utilisant une vulnérabilité use-after-free, accessible depuis l'intérieur du bac à sable Chrome.
  • Le bogue aurait été utilisé ou vendu par le groupe NSO.
  • Il fonctionne sur Pixel 1 et 2, mais pas sur Pixel 3 et 3a.
  • Il a été corrigé dans le noyau Linux >= 4.14 sans CVE.
  • CONFIG_DEBUG_LIST brise la primitive.
  • CONFIG_ARM64_UAO entrave l'exploitation.
  • La vulnérabilité est exploitable dans les processus de rendu de Chrome sous le domaine SELinux 'isolated_app' d'Android, nous amenant à soupçonner Binder comme le composant vulnérable.
  • L'exploit nécessite peu ou pas de personnalisation par appareil.
  • Une liste des appareils affectés et non affectés ainsi que leurs versions, et plus encore. Une liste non exhaustive est disponible dans la description de ce problème.

En utilisant ces détails, j'ai déterminé que le bogue utilisé est presque certainement celui de ce rapport car j'ai exclu d'autres candidats potentiels en comparant les correctifs. Une explication plus détaillée de ce bogue et de la méthodologie pour l'identifier sera rédigée dans un prochain article de blog quand j'aurai le temps.

Nous ne disposons actuellement pas d'un échantillon de l'exploit. Sans échantillons, nous n'avons pu confirmer ni la chronologie ni la charge utile.

Le bogue est une vulnérabilité d'élévation de privilèges locale qui permet une compromission complète d'un appareil vulnérable. Si l'exploit est délivré via le web, il a seulement besoin d'être associé à un exploit de rendu, car cette vulnérabilité est accessible via le bac à sable.

J'ai joint une preuve de concept d'exploit local pour démontrer comment ce bogue peut être utilisé pour obtenir une lecture/écriture arbitraire du noyau lorsqu'il est exécuté localement. Elle ne nécessite que l'exécution de code d'application non fiable pour exploiter CVE-2019-2215. J'ai également joint une capture d'écran (success.png) du POC fonctionnant sur un Pixel 2, exécutant Android 10 avec le niveau de correctif de sécurité de septembre 2019 (google/walleye/walleye:10/QP1A.190711.020/5800535:user/release-keys).

Déclaration du fournisseur d'Android :

"Ce problème est évalué comme sévère (High severity) sur Android et nécessite en soi l'installation d'une application malveillante pour une exploitation potentielle. Toute autre vecteur, comme via un navigateur web, nécessite un chaînage avec un exploit supplémentaire. Nous avons notifié les partenaires Android et le correctif est disponible sur le noyau commun Android. Les appareils Pixel 3 et 3a ne sont pas vulnérables tandis que les appareils Pixel 1 et 2 recevront des mises à jour pour ce problème dans le cadre de la mise à jour d'octobre."

Télécharger l’outil