Wersje Cryptocat przed 2.0.22 wykorzystywały funkcję Math.random() jako źródło entropii w bibliotece strophe.js, co skutkowało kryptograficznie słabym generatorem liczb losowych (CWE-330). Podatność ta podważa bezpieczeństwo szyfrowania komunikacji i jest oceniana jako krytyczna (CVSS 9.1).
▸ Pokaż oryginał (EN)
Cryptocat before 2.0.22 strophe.js Math.random() Random Number Generator Weakness
Funkcja Math.random() dostępna w środowiskach JavaScript nie jest kryptograficznie bezpiecznym generatorem liczb pseudolosowych (CSPRNG). Jej wyniki są przewidywalne i mogą zostać odtworzone przez atakującego. Cryptocat używał tej funkcji do generowania materiału kluczowego lub wartości nonce w procesie szyfrowania, co oznaczało, że klucze kryptograficzne mogły być słabe i podatne na odgadnięcie lub odtworzenie bez znajomości oryginalnego sekretu.
Atakujący może odtworzyć klucze kryptograficzne używane do szyfrowania komunikacji, co prowadzi do ujawnienia poufnych wiadomości (naruszenie poufności) oraz potencjalnej możliwości podszywania się pod uczestników rozmowy (naruszenie integralności).
Należy zaktualizować Cryptocat do wersji 2.0.22 lub nowszej, w której zastąpiono Math.random() kryptograficznie bezpiecznym generatorem liczb losowych. Należy zastosować patche dostępne u producenta zgodnie z referencjami.
Cryptocat Project Cryptocat w wersjach przed 2.0.22
Podatność została publicznie opisana w lipcu 2013 roku (lista oss-security z dnia 10.07.2013), natomiast wpis CVE opublikowano w listopadzie 2019 roku. Szczegółowa analiza techniczna dostępna jest pod adresem tobtu.com/decryptocat.php wskazanym w referencjach.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NCryptocat Project Cryptocat
APPCryptocat Project< 2.0.22
Powiązane podatności
Wiele niezidentyfikowanych podatności w Cryptocat 2.0.18
Dowolne wykonanie kodu w Cryptocat przed wersją 2.0.22 (Firefox)
Cryptocat: słaba entropia w funkcji Cryptocat.random() — podatność kryptograficzna
Remote Script Injection w Cryptocat przed wersją 2.0.22
Cryptocat before 2.0.22 Chrome Extension 'img/keygen.gif' has Information Disclosure