Komponent QAbstractOAuth w Qt Network Authorization inicjalizuje generator liczb pseudolosowych (PRNG) wyłącznie na podstawie aktualnego czasu systemowego, co sprawia, że generowane wartości mogą być przewidywalne dla atakującego. Podatność posiada ocenę CVSS 9.8 (CRITICAL) i może prowadzić do przejęcia kontroli nad sesją OAuth.
▸ Pokaż oryginał (EN)
QAbstractOAuth in Qt Network Authorization in Qt before 5.15.17, 6.x before 6.2.13, 6.3.x through 6.5.x before 6.5.6, and 6.6.x through 6.7.x before 6.7.1 uses only the time to seed the PRNG, which may result in guessable values.
Mechanizm OAuth wymaga generowania losowych wartości (np. tokenów stanu, nonce) w celu zabezpieczenia przepływu autoryzacji. W podatnych wersjach Qt klasa QAbstractOAuth używa czasu systemowego jako jedynego ziarna (seed) dla PRNG, co jest słabym źródłem entropii. Znając przybliżony czas inicjalizacji, atakujący zdalny (bez uwierzytelnienia) jest w stanie odtworzyć lub przewidzieć generowane wartości losowe. Klasa CWE-335 opisuje ten rodzaj błędu jako niewłaściwe użycie ziarna w generatorze liczb pseudolosowych.
Atakujący może przewidzieć wartości generowane przez PRNG, co umożliwia podrobienie lub przejęcie sesji OAuth, a w konsekwencji — pełne naruszenie poufności, integralności i dostępności zasobów chronionych mechanizmem autoryzacji.
Należy zaktualizować Qt do wersji 5.15.17, 6.2.13, 6.5.6 lub 6.7.1 (odpowiednio do używanej gałęzi). Użytkownicy Fedory powinni zastosować aktualizacje pakietów zgodnie z komunikatami opublikowanymi na listach Fedora Project. Patche dostępne są w referencjach projektu Qt (codereview.qt-project.org).
Qt przed wersją 5.15.17, Qt 6.x przed 6.2.13, Qt 6.3.x–6.5.x przed 6.5.6 oraz Qt 6.6.x–6.7.x przed 6.7.1; dotyczy komponentu Qt Network Authorization (qtnetworkauth). Podatność dotyczy również pakietów Qt w dystrybucji Fedora.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFedora Project Fedora
OSFedoraproject3940Qt
APPQt< 5.15.176.0.0 – 6.2.13 (bez)6.3.0 – 6.5.6 (bez)6.6.0 – 6.7.1 (bez)
Powiązane podatności
PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit
Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML
Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)
Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox
Integer overflow w Skia w Google Chrome — sandbox escape