Katalog CVE

CVE-2026-53646

WysokieCVSS 7.7
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.22%

Percentyl 12 - wyżej niż 12% wszystkich znanych CVE

Streszczenie

W systemie FOSSBilling w wersjach od 0.5.6 do 0.7.2 istnieje podatność polegająca na tym, że przy wielokrotnym żądaniu resetowania hasła przez tego samego klienta, nie jest generowany nowy token, a wykorzystywany jest istniejący, ważny przez 15 minut od pierwotnego żądania. Atakujący, który przechwycił pierwszy link resetujący, może go użyć nawet po tym, jak ofiara zażąda nowego resetu, ponieważ oryginalny token nie jest unieważniany.

Ocena ryzyka

Ryzyko polega na możliwości przejęcia konta użytkownika przez atakującego, który uzyskał dostęp do pierwszego linku resetującego hasło, nawet jeśli ofiara wielokrotnie żądała nowego resetu. Może to prowadzić do nieautoryzowanego dostępu do danych klienta i zarządzania jego kontem.

Rekomendacja

Należy niezwłocznie zaktualizować system FOSSBilling do wersji 0.8.0, która usuwa tę podatność. Jako tymczasowe obejście zaleca się skonfigurowanie ograniczenia szybkości żądań (rate limiting) na poziomie reverse proxy dla endpointu resetowania hasła oraz ręczne czyszczenie starych rekordów resetowania w bazie danych.

Oryginalny opis (angielski, źródło NVD)

FOSSBilling is a free, open-source billing and client management system. In versions 0.5.6 through 0.7.2, when a `ClientPasswordReset` record already exists for a client (from a previous unexpired reset request), subsequent calls to the `reset_password` guest API endpoint reuse the existing token instead of generating a new one. The 15-minute validity window is anchored to the first request's `created_at` timestamp, not the time of the most recent email. An attacker who obtained the original reset link remains able to use it even after the victim requests a new reset, because the original token is never invalidated or rotated. Version 0.8.0 patches the issue. Some workarounds are available. Configure a reverse proxy (e.g., Nginx, Apache, Cloudflare) to apply per-IP rate limiting to the `/client/reset-password` endpoint to minimize the window of opportunity, and/or manually clear expired `client_password_reset` records from the database after a client reports a suspected compromise.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS