CVE-2026-102758
NieznaneStreszczenie
W funkcji `_nx_secure_x509_asn1_tlv_block_parse()` w NetX Secure występuje odczyt poza granicami bufora. Funkcja odczytuje bajt tagu ASN.1 przed sprawdzeniem, czy bufor zawiera co najmniej jeden bajt, co przy zerowej długości prowadzi do odczytu o jeden bajt poza końcem bufora. Podatność dotyczy parsowania certyfikatów X.509 dostarczanych przez zdalnego klienta podczas uzgadniania TLS.
Ocena ryzyka
Zdalny atakujący może wysłać specjalnie spreparowany certyfikat, powodując odczyt pamięci poza buforem. Może to prowadzić do ujawnienia wrażliwych danych, awarii usługi lub potencjalnie do wykonania kodu w zależności od kontekstu.
Rekomendacja
Zaleca się natychmiastowe zaktualizowanie NetX Secure do wersji zawierającej poprawkę, która przenosi odczyt tagu po sprawdzenie długości bufora. Jeśli aktualizacja nie jest możliwa, należy ograniczyć zaufane źródła certyfikatów i wdrożyć dodatkowe mechanizmy filtrowania.
Inne podatności w NetX Secure
Zobacz wszystkie- CVE-2026-102760Wysokie
Gdy NetX Secure jest zbudowany z opcją `NX_SECURE_KEY_CLEAR`, każdy rekord TLS wysyłany w aktywnej sesji jest wymazywany po przekazaniu do TCP. W tym momencie warstwa TCP jest właścicielem łańcucha pakietów i mogła już zwolnić go do puli pakietów. Wymazywanie zapisuje zera w pakietach, które są wolne lub używane przez inny wątek, a gdy wskaźniki ponownie użytego pakietu nie opisują już starych danych, długość wymazywania powoduje niedomiar i wykracza poza koniec puli pakietów.
- CVE-2026-102728Nieznane
Dwa parsery uzgadniania TLS/DTLS po stronie klienta w NetX Secure odczytują pola z komunikatu dostarczonego przez serwer przed sprawdzeniem, czy komunikat jest wystarczająco długi, aby je zawierać. Oba są ograniczonymi odczytami poza zakresem na zdalnie osiągalnej ścieżce, osiągalnymi z klienta TLS lub DTLS łączącego się ze złośliwym lub nieprawidłowym serwerem.
- CVE-2026-102719Średnie
Podatność związana z przewidywalnym ciasteczkiem HelloVerifyRequest w protokole DTLS w NetX Secure. Przewidywalność ciasteczka może umożliwić atakującemu obejście mechanizmu ochrony przed fałszowaniem adresu źródłowego.
Oryginalny opis (angielski, źródło NVD)
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. The function reads the one-byte ASN.1 tag from the caller'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. code: 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]; /* <-- read before the bounds check */ if (*buffer_length < 1) { return(NX_SECURE_X509_ASN1_LENGTH_TOO_LONG); } ``` The remainder of the function is correctly ordered. The multi-byte length path is guarded by `length_bytes > 4 || length_bytes > *buffer_length` before its read loop, the decoded value is checked against `length > *buffer_length`, and the second single-byte length read follows its own `*buffer_length < 1` guard. The tag read is the only load placed ahead of its check.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

