{"id":30715,"date":"2026-09-30T04:31:05","date_gmt":"2026-09-29T20:31:05","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-102758"},"modified":"2026-09-30T04:31:05","modified_gmt":"2026-09-29T20:31:05","slug":"cve-2026-102758","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-102758","title":{"rendered":"CVE-2026-102758 &#8211; The `_nx_secure_x509_asn1_tlv_block_parse()` function parses ASN.1 TLV (tag-length-value)"},"content":{"rendered":"<p>The `_nx_secure_x509_asn1_tlv_block_parse()` function parses ASN.1 TLV (tag-length-value) blocks out of DER-encoded data. It is the primitive underneath all X.509 certificate parsing in NetX Secure, and therefore runs on certificates supplied by a remote peer during the TLS handshake.<\/p>\n<p>The function reads the one-byte ASN.1 tag from the caller&#8217;s buffer *before* checking that the buffer holds at least one byte. When a caller passes a remaining length of zero, the guard correctly returns `NX_SECURE_X509_ASN1_LENGTH_TOO_LONG`, but the read has already happened one byte past the end of the buffer.<\/p>\n<p>code:<\/p>\n<p>nx_secure\/src\/nx_secure_x509_asn1_tlv_block_parse.c<\/p>\n<p>&#8220;`<\/p>\n<p>UINT _nx_secure_x509_asn1_tlv_block_parse(const UCHAR *buffer, ULONG *buffer_length, USHORT *tlv_type,<\/p>\n<p>                                          USHORT *tlv_tag_class, ULONG *tlv_length,<br \/>\n                                          const UCHAR **tlv_data, ULONG *header_length)<\/p>\n<p>{<\/p>\n<p>UINT   current_index;<\/p>\n<p>USHORT current_tag;<\/p>\n<p>ULONG  length;<\/p>\n<p>ULONG  length_bytes;<\/p>\n<p>    current_index = 0;<br \/>\n    current_tag = buffer[current_index];      \/* &lt;&#8211; read before the bounds check *\/<br \/>\n    if (*buffer_length  4 || length_bytes &gt; *buffer_length` before its read loop, the decoded value is checked against `length &gt; *buffer_length`, and the second single-byte length read follows its own `*buffer_length &lt; 1` guard. The tag read is the only load placed ahead of its check.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The `_nx_secure_x509_asn1_tlv_block_parse()` function parses ASN.1 TLV (tag-length-value) blocks out of DER-encoded data. It is the primitive underneath all X.509 certificate parsing in NetX Secure, a<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-30715","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/30715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=30715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=30715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=30715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}