CRITICAL🇬🇧 English

CVE-2020-11105

USC iLab cereal: błąd serializacji shared_ptr przez ponowne użycie adresów pamięci

CVSS 9.8v3.1pub. 2020-03-30upd. 2024-11-21

Biblioteka USC iLab cereal do wersji 1.3.0 włącznie zawiera błąd w mechanizmie cachowania wskaźników std::shared_ptr, który może prowadzić do nieprawidłowej serializacji danych. W zależności od kontekstu użycia konsekwencje mogą być poważne i trudne do przewidzenia.

Pokaż oryginał (EN)

An issue was discovered in USC iLab cereal through 1.3.0. It employs caching of std::shared_ptr values, using the raw pointer address as a unique identifier. This becomes problematic if an std::shared_ptr variable goes out of scope and is freed, and a new std::shared_ptr is allocated at the same address. Serialization fidelity thereby becomes dependent upon memory layout. In short, serialized std::shared_ptr variables cannot always be expected to serialize back into their original values. This can have any number of consequences, depending on the context within which this manifests.

🤖 Analiza AI
Jak działa

Biblioteka cereal używa surowego adresu wskaźnika (raw pointer address) jako unikalnego identyfikatora przy cachowaniu obiektów std::shared_ptr. Problem pojawia się, gdy obiekt std::shared_ptr wychodzi poza zakres widoczności i jest zwalniany, a następnie nowy obiekt std::shared_ptr zostaje przydzielony pod tym samym adresem w pamięci. W takiej sytuacji mechanizm serializacji błędnie utożsamia nowy obiekt z poprzednim, co powoduje, że poprawność serializacji zależy od układu pamięci w danym momencie wykonania programu. Efektem jest to, że zserializowane zmienne std::shared_ptr po deserializacji nie zawsze odtwarzają swoje oryginalne wartości.

Skutki

Atakujący lub niekontrolowane warunki środowiskowe mogą doprowadzić do naruszenia integralności, poufności lub dostępności danych przetwarzanych przez aplikację korzystającą z biblioteki, w zależności od kontekstu jej użycia (CWE-763: użycie zwolnionego wskaźnika będącego prawidłowym obiektem).

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się śledzenie repozytorium projektu na GitHub (USCiLab/cereal) w celu uzyskania poprawionej wersji biblioteki.

Kogo dotyczy

USC iLab cereal w wersjach do 1.3.0 włącznie

Uwagi

Podatność została zgłoszona w ramach issue #636 w repozytorium GitHub projektu USCiLab/cereal. Pomimo wysokiego wyniku CVSS 9.8, realny wpływ jest silnie zależny od kontekstu użycia biblioteki w konkretnej aplikacji.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Usc Cereal

    APP
    Usc
    ≤ 1.3.0
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2020-11104MEDIUM5.3ten sam produkt

An issue was discovered in USC iLab cereal through 1.3.0. Serialization of an (initialized) C/C++ long double ...