
Биткойн-криптоанализ: Уязвимость CVE-2025-27840 в микроконтроллерах ESP32 ставит под угрозу миллиарды устройств IoT через Wi-Fi и Bluetooth
В данной статье рассматривается, как злоумышленник может внедрить скрытый список уязвимостей через обновления модулей, что может привести к компрометации устройств ESP32 и получению несанкционированного доступа к закрытым ключам, затрагивая миллиарды устройств, использующих этот микроконтроллер. Одной из ключевых проблем является уязвимость CVE-2025-27840, обнаруженная в архитектуре ESP32. Для обеспечения безопасности сети Биткоин мы выявили следующие уязвимости: возможность использования недействительных закрытых ключей из-за отсутствия проверки нижней границы в функции has_invalid_privkey; уязвимость подделки подписи транзакций в функции electrum_sig_hash из-за несовместимости с BIP-137; проблема слабого PRNG в функции генерации ключей random_key, делающая личные закрытые ключи для криптовалютных кошельков предсказуемыми; отсутствие проверки точек на кривой ECC в функции multiply, что может привести к атакам на недопустимые кривые; уязвимость в функции ecdsa_raw_sign при восстановлении Y-координаты, потенциально ведущая к подмене открытого ключа; а также уязвимости, связанные с устаревшими API хеширования в bin_ripemd160.
В начале марта 2025 года компания Tarlogic Security выявила уязвимость в микроконтроллере ESP32, который широко используется для подключения устройств через Wi-Fi и Bluetooth. Эта уязвимость была зарегистрирована под номером CVE-2025-27840. Злоумышленники могут получить несанкционированный доступ к данным кошельков Биткоин, используя чип ESP32 в качестве точки для криптографических атак на устройства, работающие в сетях популярных криптовалют, таких как Биткоин и Эфириум. Эта проблема затрагивает миллионы IoT-устройств, использующих данный микроконтроллер. Эксплуатация этой уязвимости позволит злоумышленникам проводить атаки под видом легитимных пользователей и постоянно заражать уязвимые устройства. Это угрожает безопасности IoT-устройств на базе микроконтроллера ESP32 и может привести к краже закрытых ключей кошельков Биткоин.
ESP32 — это микроконтроллер, широко используемый в IoT-устройствах для обеспечения подключения по Wi-Fi и Bluetooth. Злоумышленники могут использовать различные методы для получения доступа к данным закрытых ключей кошельков Биткоин через ESP32.
Угрозы безопасности, связанные с микроконтроллером ESP32, могут привести к краже закрытых ключей кошельков Биткоин. Основные проблемы включают наличие бэкдоров и уязвимостей. Используя такие уязвимости, они могут манипулировать памятью, подделывать MAC-адреса и внедрять вредоносный код, что создает серьезные риски для безопасности.
Злоумышленники могут атаковать IoT-устройства с микроконтроллером ESP32, используя уязвимости в Bluetooth- и Wi-Fi-соединениях, что может стать инструментом для атак на другие устройства в сети, связанной с Биткоин, а также для кражи конфиденциальной информации, включая закрытые ключи для кошельков Биткоин.
Злоумышленник может обновлять модули и вносить в код список различных уязвимостей, включая:
has_invalid_privkey, которая может быть использована для получения закрытого ключа.electrum_sig_hash, позволяющая подделывать подписи транзакций Биткоин.random_key, связанная со слабым генератором псевдослучайных чисел (недетерминированный PRNG).multiply, где отсутствует проверка точки на кривой ECC.ecdsa_raw_sign и bin_ripemd160.Эти уязвимости могут быть использованы для внедрения поддельных обновлений в устройства ESP32, предоставляя злоумышленникам низкоуровневый доступ к системе. Это позволит им обходить средства контроля аудита кода и получать доступ к закрытым ключам. В настоящее время миллиарды устройств могут быть уязвимы из-за скрытых особенностей одного компонента в их архитектуре, который обозначен как CVE-2025-27840.
has_invalid_privkeyЭта уязвимость была найдена в коде проверки закрытых ключей Биткоин, что позволяет использовать недействительные ключи (меньше или равные 0) из-за отсутствия проверки нижней границы. Это может привести к потере средств. Для исправления необходимо добавить проверку, чтобы убедиться, что закрытый ключ больше 0. Код предоставлен в демонстрационных целях.