CVE-2026-5187
KrytyczneStreszczenie
W funkcji DecodeObjectId() w pliku wolfcrypt/src/asn.c występują dwa potencjalne miejsca, w których może dojść do zapisu poza granicami bufora. Pierwsze z nich polega na tym, że sprawdzenie granic waliduje tylko jeden dostępny slot przed zapisaniem dwóch wartości OID, co umożliwia zapis 2 bajtów poza granicami, gdy outSz wynosi 1. Drugie dotyczy sytuacji, w której wielu wywołujących przekazuje rozmiar decOid (64 bajty na platformach 64-bitowych) zamiast liczby elementów MAX_OID_SZ (32), co pozwala na akceptację stworzonych OID z 33 lub więcej łukami, co prowadzi do zapisu poza końcem przydzielonego bufora.
Ocena ryzyka
Wykorzystanie tej podatności może prowadzić do nieautoryzowanego zapisu w pamięci, co może skutkować awarią aplikacji lub potencjalnym zdalnym wykonaniem kodu. Organizacje mogą być narażone na ataki, które mogą prowadzić do utraty danych lub przejęcia kontroli nad systemem.
Rekomendacja
Zaleca się aktualizację biblioteki wolfcrypt do najnowszej wersji, która naprawia te problemy z walidacją. Dodatkowo, należy przeprowadzić audyt kodu źródłowego w celu identyfikacji i naprawy podobnych problemów z bezpieczeństwem.
Oryginalny opis (angielski, źródło NVD)
Two potential heap out-of-bounds write locations existed in DecodeObjectId() in wolfcrypt/src/asn.c. First, a bounds check only validates one available slot before writing two OID arc values (out[0] and out[1]), enabling a 2-byte out-of-bounds write when outSz equals 1. Second, multiple callers pass sizeof(decOid) (64 bytes on 64-bit platforms) instead of the element count MAX_OID_SZ (32), causing the function to accept crafted OIDs with 33 or more arcs that write past the end of the allocated buffer.

