W Airsonic 10.2.1 mechanizm odzyskiwania haseł używa generatora liczb pseudolosowych java.util.Random z ziarnem 48-bitowym, które można łatwo przeszukać siłowo. Prowadzi to do trywialnych ataków privilege escalation bez wymagania jakiegokolwiek uwierzytelnienia.
▸ Pokaż oryginał (EN)
In Airsonic 10.2.1, RecoverController.java generates passwords via org.apache.commons.lang.RandomStringUtils, which uses java.util.Random internally. This PRNG has a 48-bit seed that can easily be bruteforced, leading to trivial privilege escalation attacks.
Klasa RecoverController.java generuje hasła tymczasowe za pomocą biblioteki org.apache.commons.lang.RandomStringUtils, która wewnętrznie korzysta z java.util.Random. Generator ten stosuje ziarno (seed) o długości zaledwie 48 bitów, co czyni przestrzeń możliwych wartości wystarczająco małą, by atakujący mógł ją przeszukać metodą brute-force w krótkim czasie. Odgadując wygenerowane hasło tymczasowe, nieuprawniony użytkownik może przejąć konto dowolnego użytkownika aplikacji, w tym konta administratora.
Atakujący zdalnie i bez uwierzytelnienia może przejąć kontrolę nad dowolnym kontem użytkownika (włącznie z kontami administratorów), uzyskując pełny dostęp do danych, konfiguracji i funkcji aplikacji.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawka została wprowadzona w commicie 61c842923a6d60d4aedd126445a8437b53b752c8 w repozytorium GitHub projektu Airsonic.
Airsonic w wersji 10.2.1
Podatność klasyfikowana jest jako CWE-335 (Incorrect Usage of Seeds in Pseudo-Random Number Generator). Mimo braku wymogu uwierzytelnienia i oceny CVSS 9.8 (CRITICAL), podatność nie figuruje w katalogu CISA KEV.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HAirsonic Project Airsonic
APPAirsonic Project10.2.1