
Доказательство концепции, демонстрирующее небезопасное шифрование AES-CBC с выводом ключа на основе MD5 в Android-приложении Meesho, позволяющее подменять шифротекст и проводить потенциальные атаки на оракул дополнения (padding oracle).
Автор: Соям Ария (он же honest_corrupt)
Дата обнаружения: март 2026 г.
Затронутое приложение: Android-приложение Meesho (com.meesho.supply)
Статус: На проверке
Категория: Недостаточная криптография / нарушение целостности данных
В этом отчете документируется криптографическая уязвимость в Android-приложении Meesho, где конфиденциальные данные шифруются с использованием AES/CBC/PKCS5Padding без защиты целостности, а ключ шифрования формируется с помощью небезопасного алгоритма хеширования MD5.
Приложение формирует зашифрованные полезные нагрузки в формате:
Base64(IV) . Base64(зашифрованный текст)
Однако из-за отсутствия аутентификации (например, HMAC или режима AEAD, такого как AES-GCM) реализация уязвима для:
Это нарушает множество OWASP Mobile Top 10 и криптографических рекомендаций MASVS.
| Категория | Описание |
|---|---|
| M5: Недостаточная криптография | Использование слабых криптографических примитивов (MD5, AES-CBC без целостности) |
| CWE-327 | Использование взломанного или рискованного криптографического алгоритма |
| CWE-649 | Использование шифрования без проверки целостности |
| OWASP MASVS | MSTG-CRYPTO-3, MSTG-CRYPTO-4 |
Обратная разработка выявила следующую логику:
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);
Зашифрованная полезная нагрузка передается в API-запросах как:
http POST /api/endpoint
message=Base64(IV).Base64(зашифрованный текст)

Перехватите запрос через Burp Suite:
` message=AbCdEfGhIj...xyz.KLMNOPQRST... ``
Измените один байт в зашифрованном тексте:
`` Оригинал: ...KLMNOPQRST...
Измененный: ...KLMNOPQRSU... ``
--
Отправьте измененный запрос на сервер.
message| Дата | Событие |
|---|---|
| март 2026 г. | Уязвимость обнаружена |
| март 2026 г. | Обратная разработка завершена |
| Ожидается | Уведомление поставщика |
| Ожидается | Запрос CVE |
Соям Ария (он же honest_corrupt) CVE ID: CVE-2025-5154, CVE-2025-6748 Специалист по тестированию на проникновение мобильных и веб-приложений