Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mali-pagecache-root — Boîte à outils de root pour TCL 50C721 (RTD1319 / Mali-G31) — chaîne d'exploitation autonome CVE-2022-22706 | Kitploit
Outils/GitLabGitLab/c4psu13/mali-pagecache-root
Sécurité AndroidSécurité des Systèmes EmbarquésEscalade de PrivilègesMécanismes de PersistanceExploitationShellcodePost-ExploitationSécurité Matériel et IoTDéveloppement de Charges UtilesExploitation de Binaires
GitLab
2il y a 22h 15mPas 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
c4psu13/mali-pagecache-root

mali-pagecache-root

Boîte à outils de root pour TCL 50C721 (RTD1319 / Mali-G31) — chaîne d'exploitation autonome CVE-2022-22706

Voir le dépôt

TCL 50C721 rooting toolkit

Chaîne d'exploitation root complète et boîte à outils post-root pour le root attaché (tethered root), SELinux Permissive, le blocage des publicités, le débloat et la sauvegarde automatisée sur un firmware TCL Android TV. Il s'agit de recherche et d'outillage spécifiques à un firmware, et non d'un outil de root TCL universel ni d'un installateur pris en charge.

Périmètre testé

ÉlémentUnité de test enregistrée
TVTCL QLED 50C721 / BeyondTV6
FirmwareV8-R51MT02-LF1V903, build AR10
Android / noyauAndroid 11 / 4.14.198+
SoC / GPURealtek RTD1319 / Mali-G31 (Bifrost, kbase r28p0)
Espace utilisateurARMv7 32 bits
Correctif de sécurité signalé2024-03-05
Résultat historiqueShell ADB avec uid=0 ; SELinux Permissive

Seule cette combinaison modèle/firmware dispose d'un résultat réussi enregistré. L'identification exacte du SoC et la révision du pilote Mali sont incohérentes dans les enregistrements d'origine ; voir limites de compatibilité. Aucun nouveau test de root n'a été effectué lors de la préparation de cette version source.

Ce qu'il fait

Chaîne d'exploitation (auto_root)

Le binaire root autonome (auto_root.c) obtient uid=0 depuis un contexte d'application non privilégié en moins de 2 secondes :

  1. Phase 1 — CVE-2022-22706 (écriture dans le page-cache du GPU Mali) : importe un mapping MAP_SHARED de la page __cxa_atexit de libc.so en tant que tampon utilisateur GPU via KBASE_IOCTL_MEM_IMPORT. Utilise mremap(MREMAP_FIXED) pour remplacer le mapping de fichier. Écrit 112 octets de shellcode Thumb-2 par-dessus __cxa_atexit dans le page-cache (fichier sur disque non modifié — protégé par dm-verity).

  2. Phase 3 — Déclenchement naturel : chaque nouveau processus C++ appelle __cxa_atexit() lors de l'initialisation CRT, exécutant ainsi le shellcode. Un domaine privilégié (audioserver, rtkm_scene) mappe la page physique 0x1DE7000 via /dev/rtkmem et écrit selinux_state.enforcing = 0.

  3. Phase 4a — Modification directe des identifiants : avec SELinux Permissive, parcourt la liste chaînée task_struct du noyau via des lectures de mémoire physique à travers /dev/rtkmem. Trouve notre processus en faisant correspondre comm[], écrase la structure cred avec uid=0 et les capacités complètes issues de init_cred. Efface TIF_SECCOMP pour contourner le filtre seccomp BPF du zygote.

  4. Phase 4b — Durcissement du système : monte par bind-mount des fichiers hosts de blocage des publicités, supprime les règles iptables bloquant les IP de télémétrie, désactive 28 paquets bloatware, accorde APP_AUTO_START pour la persistance au démarrage, désactive le shellcode, rétablit SELinux en mode Enforcing.

Étapes autonomes

Les deux programmes autonomes (root_cve22706.c, libc_rtkmem_patch2.c) implémentent la même primitive d'écriture dans le page-cache CVE-2022-22706 en tant qu'étapes de root attaché distinctes, utiles pour le root manuel via ADB et pour comprendre la primitive d'exploitation.

Scripts

  • scripts/root.sh — Automatisation ADB : se connecte à la TV, exécute les deux étapes autonomes, vérifie l'état root + SELinux.
  • scripts/post_root.sh — Hook post-root appelé par auto_root après le durcissement. Crée des sauvegardes complètes de l'appareil : APK sideloadés, données d'application, configuration WiFi, tous les paramètres, listes de paquets. Élagage automatique vers les 5 sauvegardes les plus récentes.

Inclus

  • Résumé technique : chaîne, effets secondaires et limites des preuves.
  • Source native et notes de compilation : root autonome + deux étapes autonomes ; aucun exécutable précompilé.
  • Limites de compatibilité : ce qui doit être établi avant d'envisager un autre appareil.
  • Notes de récupération : récupération USB historique spécifique au modèle et avertissements.
  • Extrait du code source du noyau : analyse de support, pas une dépendance de compilation.

Aucun APK ni projet d'application APK reproductible n'est inclus ; il n'y a pas ici de version installable une fois avec démarrage automatique. Le binaire root autonome est conçu pour être appelé depuis le code natif d'un APK, mais l'enveloppe APK ne fait pas partie de cette version.

Démarrage rapide

# Build (requires Android NDK)
cd exploit && make

# Push to TV
adb connect <TV_IP>:5555
adb push bin/auto_root /data/local/tmp/
adb push bin/root_cve22706 /data/local/tmp/
adb push bin/libc_rtkmem_patch2 /data/local/tmp/

# Option A: Run the autonomous chain (includes hardening + backup)
adb shell /data/local/tmp/auto_root

# Option B: Manual two-stage root via script
bash scripts/root.sh <TV_IP>

Avant d'envisager l'utilisation

À utiliser uniquement sur du matériel que vous possédez ou que vous êtes explicitement autorisé à évaluer. Examinez d'abord tous les fichiers C et chaque hypothèse spécifique au firmware. Préservez les données et obtenez indépendamment une image de récupération compatible connue ainsi que la procédure associée. N'exposez pas ADB à un réseau non fiable. Le redémarrage supprime les correctifs volatils (page-cache, montages bind, iptables), mais les désactivations de paquets et APP_AUTO_START persistent.

Ne flashez pas d'images boot ou vbmeta corrigées basées sur ce projet. Deux tentatives historiques ont provoqué des bootloops ; ni une méthode de root persistant ni une garantie de récupération universelle n'ont été établies.

Licence

MIT pour tout le code original. L'extrait du noyau (kernel/mem.c) conserve sa licence GPL-2.0 et ses mentions de copyright. Voir LICENSE et provenance pour l'attribution et les références amont.

Télécharger l’outil