W aplikacji FlaskBlog w wersji 2.8.0 i wcześniejszych dowolny zalogowany użytkownik może samodzielnie zmienić swoją rolę na 'admin', uzyskując pełne uprawnienia administracyjne. Podatność nie wymaga żadnej interakcji ze strony administratora ani specjalnych warunków wstępnych.
▸ Pokaż oryginał (EN)
flaskBlog is a blog app built with Flask. In 2.8.0 and earlier, an arbitrary user can change his role to "admin", giving its relative privileges (e.g. delete users, posts, comments etc.). The problem is in the routes/adminPanelUsers file.
Problem tkwi w pliku routes/adminPanelUsers, który nie weryfikuje prawidłowo uprawnień żądającego użytkownika przed wykonaniem zmiany roli (CWE-425 — Direct Request / Forced Browsing). Mechanizm kontroli dostępu opiera się na danych dostarczonych przez użytkownika, którymi można manipulować (CWE-807 — Reliance on Untrusted Inputs in a Security Decision). Atakujący wysyła odpowiednio spreparowane żądanie do podatnego endpointu, co skutkuje przyznaniem mu roli 'admin' bez jakiejkolwiek weryfikacji po stronie serwera.
Atakujący uzyskuje pełne uprawnienia administratora, co umożliwia mu usuwanie użytkowników, postów i komentarzy oraz wykonywanie wszelkich innych operacji zarezerwowanych dla roli admin. W praktyce oznacza to całkowitą utratę kontroli nad aplikacją przez jej prawowitych administratorów.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (advisory GHSA-6q83-vfmq-wf72 na GitHub). Do czasu aktualizacji zaleca się ograniczenie dostępu do aplikacji wyłącznie do zaufanych użytkowników lub wyłączenie funkcji rejestracji nowych kont.
Dogukanurker FlaskBlog w wersji 2.8.0 i wcześniejszych
Podatność zgłoszona przez producenta za pośrednictwem GitHub Security Advisories (GHSA-6q83-vfmq-wf72). Dotyczy projektu open-source dostępnego publicznie, co może ułatwiać samodzielne odkrycie i wykorzystanie podatności.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XDogukanurker Flaskblog
APPDogukanurker≤ 2.8.0
Powiązane podatności
Nieprawidłowa kontrola dostępu w FlaskBlog — ujawnienie nazw użytkowników
flaskBlog is a blog app built with Flask. In 2.8.0 and earlier, when deleting a comment, there's no validation...
flaskBlog is a blog app built with Flask. In 2.8.0 and earlier, the code checks if the userRole is "admin" onl...
flaskBlog is a blog app built with Flask. In 2.8.0 and earlier, when creating a post, there's no validation of...
flaskBlog is a blog app built with Flask. In versions 2.8.1 and prior, improper sanitization of postContent wh...