Description
backpack/crud provides Create, Read, Update & Delete (CRUD) functions for Backpack, a collection of Laravel packages that help users build custom administration panels. From 6.0.0 until 6.8.14 and 7.0.38, MyAccountController::postAccountInfoForm at POST /admin/edit-account-info permits AccountInfoRequest to update backpack_authentication_column(), which is email by default, without requiring current_password or otherwise verifying the account's existing password. An attacker with a temporary authenticated Backpack session can change the account-recovery email and later use the password-reset flow after the original session expires, converting session compromise into persistent account takeover. The same mechanism permits an insider to set a personal recovery address before access is revoked. The separate password-change endpoint is not affected because it verifies old_password. This issue is fixed in versions 6.8.14 and 7.0.38.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Laravel-Backpack | CRUD | >= 6.0.0, < 6.8.14, >= 7.0.0, < 7.0.38 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Packagist | backpack/crud | >= 6.0.0, < 6.8.14 | 6.8.14 | GHSA-9fw9-8c49-qch8 |
| Packagist | backpack/crud | >= 7.0.0, < 7.0.38 | 7.0.38 | GHSA-9fw9-8c49-qch8 |
References
- https://github.com/Laravel-Backpack/CRUD/security/advisories/GHSA-9fw9-8c49-qch8
- https://github.com/Laravel-Backpack/CRUD/pull/5990
- https://github.com/Laravel-Backpack/CRUD/pull/5994
- https://github.com/Laravel-Backpack/CRUD/commit/76c3a6e50e3fbd6d5f633208da5b04acb8322969
- https://github.com/Laravel-Backpack/CRUD/commit/8ab94543d880b03c1189acb96b78186323c62a0b
- https://github.com/Laravel-Backpack/CRUD/releases/tag/6.8.14
- https://github.com/Laravel-Backpack/CRUD/releases/tag/7.0.38