CVE-2026-54175: Laravel Backpack CRUD: Unverified password change in MyAccountController via mass assignment
The MyAccountController::postAccountInfoForm action bound to POST /admin/edit-account-info calls $this->guard()->user()->update($request->except(['_token'])). Because the controller uses except(['_token']) rather than $request->validated() or the restricted keys defined in AccountInfoRequest::validationData(), any column present in the user model’s $fillable array is mass-assigned from the request, including password. Backpack ships a separate POST /admin/change-password route (postChangePasswordForm) that requires old_password verification via ChangePasswordRequest::withValidator. The edit-account-info endpoint silently bypasses that security control.
For the default Laravel 11 App\Models\User model — which Backpack’s installer and documentation use as the canonical admin user model — $fillable is ['name','email','password']. The password cast is hashed, so a plaintext password=… form field is automatically hashed and persisted. Any attacker holding an authenticated Backpack session (session theft, stolen cookies, XSS, public-terminal residual session) can permanently take over the account by issuing one POST that includes password=<attacker_value>, with no knowledge of the victim’s current password. This converts time-limited, session-bound access into persistent account takeover.
References
- github.com/Laravel-Backpack/CRUD/pull/5980
- github.com/Laravel-Backpack/CRUD/pull/5981
- github.com/Laravel-Backpack/CRUD/releases/tag/6.8.11
- github.com/Laravel-Backpack/CRUD/releases/tag/7.0.34
- github.com/Laravel-Backpack/CRUD/security/advisories/GHSA-xpv2-hrfc-hw62
- github.com/advisories/GHSA-xpv2-hrfc-hw62
- nvd.nist.gov/vuln/detail/CVE-2026-54175
Code Behaviors & Features
Detect and mitigate CVE-2026-54175 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →