
Preuve de concept démontrant un chiffrement AES-CBC non sécurisé avec dérivation de clé MD5 dans l'application Android Meesho, permettant la falsification du texte chiffré et d'éventuelles attaques par oracle de padding.
Auteur : Soyam Arya (alias honest_corrupt)
Date de découverte : mars 2026
Application concernée : Application Android Meesho (com.meesho.supply)
Statut : En cours de vérification
Catégorie : Cryptographie insuffisante / Défaillance de l'intégrité des données
Ce rapport documente une vulnérabilité cryptographique dans l'application Android Meesho où les données sensibles sont chiffrées à l'aide de AES/CBC/PKCS5Padding sans protection d'intégrité, et où la clé de chiffrement est dérivée à l'aide de l'algorithme de hachage MD5 non sécurisé.
L'application construit des charges utiles chiffrées au format :
Base64(IV) . Base64(texte chiffré)
Cependant, en raison de l'absence d'authentification (par exemple, HMAC ou mode AEAD comme AES-GCM), l'implémentation est vulnérable à :
Cela viole plusieurs directives du OWASP Mobile Top 10 et les recommandations cryptographiques MASVS.
| Catégorie | Description |
|---|---|
| M5 : Cryptographie insuffisante | Utilisation de primitives cryptographiques faibles (MD5, AES-CBC sans intégrité) |
| CWE-327 | Utilisation d'un algorithme cryptographique cassé ou risqué |
| CWE-649 | Dépendance au chiffrement sans vérification de l'intégrité |
| OWASP MASVS | MSTG-CRYPTO-3, MSTG-CRYPTO-4 |
L'ingénierie inverse a révélé la logique suivante :
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] iv = new byte[16];
new SecureRandom().nextBytes(iv);
SecretKeySpec key = new SecretKeySpec(
MD5(str), "AES"
);
cipher.init(ENCRYPT_MODE, key, new IvParameterSpec(iv));
String message = Base64(iv) + "." + Base64(ciphertext);
La charge utile chiffrée est transmise dans les requêtes API comme suit :
http POST /api/endpoint
message=Base64(IV).Base64(texte chiffré)

Capturez la requête via Burp Suite :
` message=AbCdEfGhIj...xyz.KLMNOPQRST... ``
Modifiez un seul octet dans le texte chiffré :
`` Original : ...KLMNOPQRST...
Modifié : ...KLMNOPQRSU... ``
--
Envoyez la requête modifiée au serveur.
message| Date | Événement |
|---|---|
| mars 2026 | Vulnérabilité découverte |
| mars 2026 | Ingénierie inverse terminée |
| En attente | Notification au fournisseur |
| En attente | Demande de CVE |
Soyam Arya (alias honest_corrupt) Identifiants CVE : CVE-2025-5154, CVE-2025-6748 Testeur d'intrusion mobile et web