CVE-2026-102758 in NetX DuoИнформация

Сводка

по VulDB • 29.09.2026

Функция `_nx_secure_x509_asn1_tlv_block_parse()` разбирает блоки ASN.1 TLV (tag-length-value) из данных, закодированных в формате DER. Она является базовой функцией для всей обработки сертификатов X.509 в NetX Secure и поэтому выполняется с сертификатами, предоставленными удаленным узлом во время рукопожатия TLS.

Функция считывает однобайтовый тег ASN.1 из буфера вызывающей стороны *до* проверки того, что буфер содержит хотя бы один байт. Когда вызывающая сторона передает оставшуюся длину равной нулю, проверка корректно возвращает `NX_SECURE_X509_ASN1_LENGTH_TOO_LONG`, однако чтение уже произошло на один байт за пределами конца буфера.

код:

nx_secure/src/nx_secure_x509_asn1_tlv_block_parse.c

``` UINT _nx_secure_x509_asn1_tlv_block_parse(const UCHAR *buffer, ULONG *buffer_length, USHORT *tlv_type, USHORT *tlv_tag_class, ULONG *tlv_length, const UCHAR **tlv_data, ULONG *header_length)


{

UINT current_index;

USHORT current_tag;

ULONG length;

ULONG length_bytes; current_index = 0; current_tag = buffer[current_index]; /* <-- чтение до проверки границ */
if (*buffer_length < 1) {
return(NX_SECURE_X509_ASN1_LENGTH_TOO_LONG); }


```

Остальная часть функции имеет корректный порядок операций. Путь обработки многобайтовой длины защищен условием `length_bytes > 4 || length_bytes > *buffer_length` перед циклом чтения, декодированное значение проверяется на соответствие условию `length > *buffer_length`, а второе чтение однобайтовой длины следует за собственной проверкой `*buffer_length < 1`. Чтение тега является единственной операцией загрузки данных, выполняемой до соответствующей проверки.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Ответственный

Eclipse

Резервировать

29.09.2026

Раскрытие

29.09.2026

Модерация

принято

Вход

VDB-411513

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Want to know what is going to be exploited?

We predict KEV entries!