Podatność w bibliotece Devise (wersje do 4.5.0 włącznie) pozwala atakującemu na obejście mechanizmu blokowania konta po wielokrotnych nieudanych próbach logowania. Wynika to z błędu race condition w metodzie zliczającej nieudane próby uwierzytelnienia, co w praktyce uniemożliwia skuteczną ochronę przed atakami brute force.
▸ Pokaż oryginał (EN)
Plataformatec Devise version 4.5.0 and earlier, using the lockable module contains a CWE-367 vulnerability in The `Devise::Models::Lockable` class, more specifically at the `#increment_failed_attempts` method. File location: lib/devise/models/lockable.rb that can result in Multiple concurrent requests can prevent an attacker from being blocked on brute force attacks. This attack appear to be exploitable via Network connectivity - brute force attacks. This vulnerability appears to have been fixed in 4.6.0 and later.
Moduł `Devise::Models::Lockable` zlicza nieudane próby logowania za pomocą metody `#increment_failed_attempts` w pliku `lib/devise/models/lockable.rb`. Z powodu podatności CWE-367 (Time-of-check Time-of-use, TOCTOU) oraz CWE-307 (niewystarczające ograniczenie prób uwierzytelnienia), jednoczesne wysyłanie wielu żądań sieciowych powoduje, że licznik nieudanych prób nie jest poprawnie aktualizowany. W rezultacie blokada konta nie zostaje nałożona mimo przekroczenia dozwolonego limitu nieudanych logowań, co pozwala atakującemu kontynuować atak brute force bez przeszkód.
Atakujący może przeprowadzać nieograniczone ataki brute force na konta użytkowników bez ryzyka ich zablokowania, co w konsekwencji może prowadzić do przejęcia kont i uzyskania nieautoryzowanego dostępu do chronionych zasobów aplikacji.
Należy zaktualizować bibliotekę Devise do wersji 4.6.0 lub nowszej, w której podatność została naprawiona. Szczegóły dostępne w referencjach producenta (GitHub issue #4981 oraz pull request #4996).
Plataformatec Devise w wersji 4.5.0 i wcześniejszych, korzystające z modułu lockable.
Podatność dotyczy wyłącznie aplikacji korzystających z modułu lockable biblioteki Devise. Poprawka została wprowadzona w wersji 4.6.0 zgodnie z informacją zawartą w opisie CVE.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HPlataformatec Devise
APPPlataformatec≤ 4.5.0
Powiązane podatności
An issue was discovered in Plataformatec Devise before 4.7.1. It confirms accounts upon receiving a request wi...
Devise gem 2.2.x before 2.2.3, 2.1.x before 2.1.3, 2.0.x before 2.0.5, and 1.5.x before 1.5.4 for Ruby, when u...
Nieprawidłowa kontrola dostępu w Plataformatec Simple Form (RCE)