
Prueba de concepto que demuestra el cifrado AES-CBC inseguro con derivación de clave MD5 en la aplicación Android de Meesho, lo que permite la manipulación del texto cifrado y posibles ataques de oráculo de relleno.
Autor: Soyam Arya (alias honest_corrupt)
Fecha de Descubrimiento: Marzo 2026
Aplicación Afectada: Aplicación Android de Meesho (com.meesho.supply)
Estado: En Verificación
Categoría: Criptografía Insuficiente / Fallo de Integridad de Datos
Este informe documenta una vulnerabilidad criptográfica en la aplicación Android de Meesho donde los datos sensibles se cifran utilizando AES/CBC/PKCS5Padding sin protección de integridad, y la clave de cifrado se deriva utilizando el inseguro algoritmo hash MD5.
La aplicación construye cargas útiles cifradas en el formato:
Base64(IV) . Base64(texto cifrado)
Sin embargo, debido a la ausencia de autenticación (por ejemplo, HMAC o modo AEAD como AES-GCM), la implementación es vulnerable a:
Esto viola múltiples pautas de OWASP Mobile Top 10 y MASVS sobre criptografía.
| Categoría | Descripción |
|---|---|
| M5: Criptografía Insuficiente | Uso de primitivas criptográficas débiles (MD5, AES-CBC sin integridad) |
| CWE-327 | Uso de algoritmo criptográfico roto o riesgoso |
| CWE-649 | Dependencia del cifrado sin verificación de integridad |
| OWASP MASVS | MSTG-CRYPTO-3, MSTG-CRYPTO-4 |
La ingeniería inversa reveló la siguiente lógica:
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 carga útil cifrada se transmite en las solicitudes API como:
http POST /api/endpoint
message=Base64(IV).Base64(texto cifrado)

Capturar la solicitud mediante Burp Suite:
` message=AbCdEfGhIj...xyz.KLMNOPQRST... ``
Alterar un solo byte en el texto cifrado:
`` Original: ...KLMNOPQRST...
Modificado: ...KLMNOPQRSU... ``
--
Enviar la solicitud modificada al servidor.
message| Fecha | Evento |
|---|---|
| Marzo 2026 | Vulnerabilidad descubierta |
| Marzo 2026 | Ingeniería inversa completada |
| Pendiente | Notificación al proveedor |
| Pendiente | Solicitud de CVE |
Soyam Arya (alias honest_corrupt) IDs CVE: CVE-2025-5154, CVE-2025-6748 Evaluador de Penetración de Aplicaciones Móviles y Web