CVE-2026-33936

MEDIUM CVSS 3.1: 5,3
Обновлено 27 марта 2026
Python
Параметр Значение
CVSS 5,3 (MEDIUM)
Тип уязвимости CWE-20 (Неправильная проверка ввода), CWE-130
Поставщик Python
Публичный эксплойт Нет

Пакет PyPI `ecdsa` представляет собой реализацию ECC (криптографии на основе эллиптической кривой) на чистом Python с поддержкой ECDSA (алгоритм цифровой подписи на основе эллиптической кривой), EdDSA (алгоритм цифровой подписи на основе кривой Эдвардса) и ECDH (алгоритм цифровой подписи на основе эллиптической кривой Диффи-Хеллмана). До версии 0.19.2 проблема в функциях анализа DER низкого уровня могла привести к возникновению неожиданных исключений из общедоступных функций API. `ecdsa.der.remove_octet_string()` принимает усеченный DER, если закодированная длина превышает доступный буфер. Например, OCTET STRING, длина которого заявлена ​​в 4096 байт, но предоставляет только 3 байта, анализируется успешно, а не отклоняется.

Из-за этого созданный ввод DER может привести к тому, что SigningKey.from_der() вызовет внутреннее исключение («IndexError: индекс выходит за пределы измерения 1») вместо того, чтобы полностью отклонить некорректный DER (например, вызвать UnexpectedDER или ValueError). Приложения, анализирующие ненадежные закрытые ключи DER, могут аварийно завершить работу, если они не обработают непредвиденные исключения, что приведет к отказу в обслуживании. Версия 0.19.2 исправляет проблему.

Показать оригинальное описание (EN)

The `ecdsa` PyPI package is a pure Python implementation of ECC (Elliptic Curve Cryptography) with support for ECDSA (Elliptic Curve Digital Signature Algorithm), EdDSA (Edwards-curve Digital Signature Algorithm) and ECDH (Elliptic Curve Diffie-Hellman). Prior to version 0.19.2, an issue in the low-level DER parsing functions can cause unexpected exceptions to be raised from the public API functions. `ecdsa.der.remove_octet_string()` accepts truncated DER where the encoded length exceeds the available buffer. For example, an OCTET STRING that declares a length of 4096 bytes but provides only 3 bytes is parsed successfully instead of being rejected. Because of that, a crafted DER input can cause `SigningKey.from_der()` to raise an internal exception (`IndexError: index out of bounds on dimension 1`) rather than cleanly rejecting malformed DER (e.g., raising `UnexpectedDER` or `ValueError`). Applications that parse untrusted DER private keys may crash if they do not handle unexpected exceptions, resulting in a denial of service. Version 0.19.2 patches the issue.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Нет
Нет модификации данных
Доступность
Низкое
Частичное нарушение работы

Строка CVSS v3.1