Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak przy włączonym 2FA można się zalogować na dowolnego użytkownika i to bez znajomości jego hasła!? (podatność w popularnym pluginie do WordPressa).
„Really Simple Security – Simple and Performant Security” to dość popularny plugin do WordPressa (~4000000 instalacji). Jak można się domyśleć, służy on do dodatkowego zabezpieczenia instalacji WordPressa….
Przechodząc do szczegółów – podatność CVE-2024-10924 występuje w API REST pluginu (można ją wykorzystać kiedy 2FA zostało aktywowane w pluginie; „na szczęście” jest to domyślnie wyłączone).
Atakujący może bez żadnego hasła ani nawet loginu zalogować się jako dowolny user w WordPress (również jako administrator). Od strony technicznej, wystarczy w odpowiednim żądaniu HTTP podać id użytkownika, na którego chcemy się zalogować (np. id=1) i … w zasadzie tyle. Badacze opisują to tak:
This means that even in the case of an invalid nonce, the function processing continues and invokes authenticate_and_redirect(), which authenticates the user based on the user id passed in the request, even when that user’s identity hasn’t been verified.
Od strony kodu – funkcja check_login_and_get_user() powinna sprawdzić czy użytkownik jest zalogowany. No i sprawdza, ale programiści nic z tym wynikiem nie robią, tylko uruchamiają funkcję authenticate_and_redirect() – która loguje użytkownika o identyfikatorze user_id:
~ms