
Prova de conceito demonstrando criptografia AES-CBC insegura com derivação de chave MD5 no aplicativo Android Meesho, permitindo adulteração do texto cifrado e potenciais ataques de oráculo de preenchimento.
Autor: Soyam Arya (também conhecido como honest_corrupt)
Data da Descoberta: Março de 2026
Aplicativo Afetado: Aplicativo Android Meesho (com.meesho.supply)
Status: Em Verificação
Categoria: Criptografia Insuficiente / Falha de Integridade de Dados
Este relatório documenta uma vulnerabilidade criptográfica no aplicativo Android Meesho, onde dados sensíveis são criptografados usando AES/CBC/PKCS5Padding sem proteção de integridade, e a chave de criptografia é derivada usando o inseguro algoritmo de hash MD5.
O aplicativo constrói payloads criptografados no formato:
Base64(IV) . Base64(texto cifrado)
No entanto, devido à ausência de autenticação (por exemplo, HMAC ou modo AEAD como AES-GCM), a implementação é vulnerável a:
Isso viola múltiplas diretrizes do OWASP Mobile Top 10 e do MASVS relacionadas à criptografia.
| Categoria | Descrição |
|---|---|
| M5: Criptografia Insuficiente | Uso de primitivas criptográficas fracas (MD5, AES-CBC sem integridade) |
| CWE-327 | Uso de algoritmo criptográfico quebrado ou arriscado |
| CWE-649 | Dependência de criptografia sem verificação de integridade |
| OWASP MASVS | MSTG-CRYPTO-3, MSTG-CRYPTO-4 |
A engenharia reversa revelou a seguinte 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);
O payload criptografado é transmitido em requisições de API como:
http POST /api/endpoint
message=Base64(IV).Base64(texto cifrado)

Capture a requisição via Burp Suite:
` message=AbCdEfGhIj...xyz.KLMNOPQRST... ``
Altere um único byte no texto cifrado:
`` Original: ...KLMNOPQRST...
Modificado: ...KLMNOPQRSU... ``
--
Envie a requisição modificada ao servidor.
message| Data | Evento |
|---|---|
| Março de 2026 | Vulnerabilidade descoberta |
| Março de 2026 | Engenharia reversa concluída |
| Pendente | Notificação ao fornecedor |
| Pendente | Solicitação de CVE |
Soyam Arya (também conhecido como honest_corrupt) IDs CVE: CVE-2025-5154, CVE-2025-6748 Testador de Penetração de Aplicativos Móveis e Web