Moduł Mojolicious::Plugin::Web::Auth::OAuth2 w wersji do 0.17 dla Perl generuje parametr state OAuth2 w sposób kryptograficznie nieprzewidywalny jedynie pozornie — oparty na źródłach o niskiej entropii. Pozwala to atakującemu na przeprowadzenie ataku CSRF i przejęcie sesji innego użytkownika.
▸ Pokaż oryginał (EN)
Mojolicious::Plugin::Web::Auth::OAuth2 versions through 0.17 for Perl have an insecure default state parameter. When no state generator is specified in the constructor, the module defaults to using a SHA-1 hash of predictable and low-entropy sources, including the epoch time (which is leaked via the HTTP Date header) and a call to Perl's built-in rand function. A predictable state allows an attacker to hijack another user's session through cross site request forgery (CSRF).
Gdy w konstruktorze modułu nie zostanie jawnie wskazany generator parametru state, moduł domyślnie oblicza hash SHA-1 z przewidywalnych danych: czasu epoki (epoch time) oraz wartości zwracanej przez wbudowaną funkcję rand języka Perl. Czas epoki jest dodatkowo ujawniany atakującemu za pośrednictwem nagłówka HTTP Date. Dysponując tymi danymi, atakujący jest w stanie z wysokim prawdopodobieństwem odtworzyć wartość parametru state i wykorzystać ją do podrobienia żądania OAuth2 w imieniu ofiary (atak CSRF zgodnie z RFC 6749 sekcja 10.12).
Atakujący może przejąć sesję OAuth2 innego użytkownika przez sfabrykowanie poprawnego parametru state, co w praktyce może prowadzić do nieautoryzowanego dostępu do konta ofiary w serwisie korzystającym z tego mechanizmu uwierzytelnienia.
Należy zastosować patch udostępniony przez producenta: CVE-2026-9733-r2.patch dostępny pod adresem wskazanym w referencjach (security.metacpan.org). Do czasu aktualizacji zaleca się jawne skonfigurowanie kryptograficznie bezpiecznego generatora parametru state w konstruktorze modułu.
Mojolicious::Plugin::Web::Auth::OAuth2 w wersjach do 0.17 włącznie dla języka Perl
Podatność opublikowana 23 czerwca 2026 r. na liście oss-security. Patch dostępny w referencjach producenta (metacpan.org). Dotyczy wyłącznie aplikacji korzystających z domyślnego generatora state — jawne podanie własnego generatora w konstruktorze eliminuje podatność.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N