CVE-2026-16772
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
W Akaunting w wersjach do 3.1.21 uwierzytelnieni użytkownicy z niskimi uprawnieniami mogą zmodyfikować swoje konto, przypisując sobie identyfikator roli administratora, co daje pełne uprawnienia administratora. Podatność wynika z błędu w zadaniu `UpdateUser`, które przetwarza przypisania ról dostarczane przez użytkownika poprzez bezwarunkowe wywołanie `roles()->sync()` bez weryfikacji, czy wywołujący jest uprawniony do zarządzania rolami. Użytkownicy potrzebują tylko domyślnego uprawnienia `update-auth-profile`, aby uzyskać dostęp do ścieżki samodzielnej aktualizacji i przypisać sobie rolę administratora. Punkty końcowe API są odpowiednio zabezpieczone i nie są dotknięte tym problemem.
Ocena ryzyka
Ryzyko dla organizacji to eskalacja uprawnień przez uwierzytelnionych użytkowników o niskich uprawnieniach, co może prowadzić do pełnej kompromitacji systemu Akaunting.
Rekomendacja
Zaleca się natychmiastową aktualizację Akaunting do wersji nowszej niż 3.1.21, która zawiera poprawkę. Należy również ograniczyć uprawnienia użytkowników i monitorować aktywność kont.
Oryginalny opis (angielski, źródło NVD)
In Akaunting versions <= 3.1.21, low‑privileged authenticated users can modify their own account to assign themselves the admin role ID, granting full administrator privileges. This vulnerability is caused by a flaw in the `UpdateUser` job, which processes user-supplied role assignments via an unconditional `roles()->sync()` call without verifying whether the caller is authorized to manage roles. Users only require the default `update-auth-profile` permission to access the self-update path and assign themselves as admins. The API endpoints are properly permission‑gated and are not affected by this issue.

