backpack/crud security advisory
CVE-2026-54176: Laravel Backpack CRUD: MyAccountController allows changing the login email without a current-password check
CVE-2026-54176 is a medium-severity authentication bypass vulnerability in the PHP package backpack/crud (CVSS 6.5), published 14 September 2026. It is fixed in 6.8.14 and 7.0.38, one per release line; earlier versions on each line are affected. Exploiting it needs an admin-level account.
medium 6.5 published 2026-09-14 · updated 2026-09-30
- Affected versions
- >= 6.0.0, < 6.8.14
>= 7.0.0, < 7.0.38 - Fixed in
- 6.8.14, 7.0.38
- Newest release
- 7.1.24
- Severity
- Medium · CVSS 6.5
- Type
- Authentication bypass
CWE-287, CWE-620 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Is your backpack/crud version affected?
Who can exploit CVE-2026-54176
- Access: A high-privilege account in the app, such as an admin.
CVSS vector (scored by GitHub): CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
How to fix CVE-2026-54176 in backpack/crud
- Find the installed version:
composer show backpack/crud. If you never required it yourself,composer why backpack/crudshows which package pulls it in. - Update it:
composer update backpack/crud --with-all-dependencies. You need the fixed version for your release line (6.8.14 and 7.0.38). - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"backpack/crud": "^7.0.38"if you can take that version), or upgrade the package that requires it. - Run
composer audit. It reads the same advisory data and should no longer list CVE-2026-54176. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Remove accounts you do not need and review what each role can do.
- Put the admin area behind a VPN, IP allow-list or extra login until you upgrade.
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-54176 advisory
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.
References
- GitHub advisory GHSA-9fw9-8c49-qch8 github.com
- Fix commit 76c3a6e github.com
- Fix commit 8ab9454 github.com
- Pull request #5990 github.com
- Pull request #5994 github.com
- Release 6.8.14 github.com
- Release 7.0.38 github.com
Other backpack/crud advisories
- medium CVE-2026-57570: Laravel Backpack CRUD: HasMany/MorphMany relation fields allow cross-tenant record re-parenting (IDOR) via attachManyRelation 2026-08-20
- high CVE-2026-54182: Laravel Backpack CRUD: OS command injection in Stats::makeCurlRequest via attacker-controlled Host header (pre-auth) 2026-08-20
- medium CVE-2026-54181: Laravel Backpack CRUD: Stored XSS in the color column — the @if($column['escaped']) branches are inverted 2026-08-20
- high CVE-2026-54180: Laravel Backpack CRUD: CRUD panel query scopes are not enforced on Update, Delete, and Reorder (cross-tenant IDOR) 2026-08-20
- medium CVE-2026-54179: Laravel Backpack CRUD: SingleBase64Image accepts any base64 payload behind a data:image prefix — SVG-with-script lands on the public disk 2026-08-20
- high CVE-2026-54178: Laravel Backpack CRUD: Arbitrary file deletion via attacker-controlled clear_<attr>[] in HasUploadFields::uploadMultipleFilesToDisk 2026-08-20
Related
Need help patching or upgrading? Laskyr does PHP and Laravel security fixes and upgrades. Tell us what you run and we reply with a plan and a price.
Ask about a fixWhere this data comes from
- Affected and fixed versions: the Packagist security advisories API (GitHub Advisory Database and FriendsOfPHP), the same data
composer audituses. Synced 2026-11-03. - Description, score, weakness and references: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Exploited-in-the-wild status: the CISA Known Exploited Vulnerabilities catalog, checked 2026-11-04.
- Compiled by Daniel Lasek at Laskyr from the sources above. The summary, “who can exploit it”, “how to fix it” and hardening sections are our plain-English reading of the record and are generated from it. The quoted description is the record's own text. Spot an error? Tell us.