Анализ уязвимости кошелька Qubic выявил проблему безопасности, которую легко упустить из виду: закрытый ключ необязательно красть напрямую — если случайные числа, используемые для его генерации, можно предсказать, злоумышленник может получить контроль над аккаунтом.

SlowMist обнаружила, что Math.random(), используемый в Qubic Wallet, не подходит для генерации сид-фраз аккаунтов, которым требуется криптографическая стойкость. Кроме того, часть значений из той же последовательности случайных чисел записывалась в поле dejaVu сетевых пакетов. Согласно локальному PoC команды, при определённых условиях получение 6 связанных значений подряд может позволить восстановить внутреннее состояние генератора случайных чисел, а затем воссоздать сид-фразу и закрытый ключ аккаунта.

Опасность подобных уязвимостей в том, что внешне кошелёк может работать совершенно нормально, а пользователю трудно понять, находится ли его аккаунт под угрозой. Проблема безопасности скрыта в низкоуровневой реализации, и нельзя рассчитывать, что пользователи смогут избежать её при обычном использовании.

Однако в отчёте описан лишь потенциальный путь атаки, и на его основании нельзя утверждать, что ранее произошедшая кража QU была совершена именно таким способом. Ранее Qubic сообщила о краже средств с 1 404 кошельков на сумму около 2,94 триллиона QU. Пользователям, которых это затронуло, следует ориентироваться на уведомления о безопасности и планы реагирования, опубликованные командой проекта.