Один из самых популярных в мире криптографической валюты Биткоин кошельков Blockchain выпускает обновление своего Android-приложения после обнаружения критической уязвимости. Из-за неё пользователи отправляют денежные переводы не по тому адресу, по которому им нужно, без предупреждения об этом.
Уязвимость затрагивает приложение для Android на версиях 4.1 или более старых. Здесь используется незашифрованное соединение HTTP при доступе на сайт random.org для получения случайных чисел, необходимых для генерации частных ключей адресов Биткоин. С января random.org требует использования соединения HTTP и выдаёт ошибку при попытке зайти через HTTP. Результатом стало то, что уязвимые приложения генерировали ключи, соответствующие одному адресу 1Bn9ReEocMG1WEW1qYjuDrdFzEFFDCq43F, независимо от задаваемого пользователем адреса.
В некоторых случаях генератор псевдослучайных чисел в Blockchain на Android не получал доступа к числам, которые должны встраиваться в скачиваемые с random.org случайные числа. Не сообщая об ошибке, приложение использовало 256-разрядное число от random.org как средство для генерации ключей, так что сайт был единственным поставщиком данных для генерации ключей.
Для генерации псевдослучайных чисел использовался программный интерфейс LinuxSecureRandom вместо более стандартного для Android-разработчиков SecureRandom. При этом у одних пользователей систем до Android 4.1 уязвимости проявляются, а у других нет.