backpack/crud security advisory
CVE-2026-54175: Laravel Backpack CRUD: Unverified password change in MyAccountController via mass assignment
CVE-2026-54175 is a high-severity mass assignment vulnerability in the PHP package backpack/crud (CVSS 7.6), published 14 September 2026. It is fixed in 6.8.11 and 7.0.34, one per release line; earlier versions on each line are affected. Exploiting it needs a low-privilege user account.
high 7.6 published 2026-09-14 · updated 2026-09-30
- Affected versions
- < 6.8.11
>= 7.0.0-alpha.1, < 7.0.34 - Fixed in
- 6.8.11, 7.0.34
- Newest release
- 7.1.24
- Severity
- High · CVSS 7.6
- Type
- Mass assignment
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-54175
- Access: A normal, low-privilege user account in the app.
CVSS vector (scored by GitHub): CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L
How to fix CVE-2026-54175 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.11 and 7.0.34). - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"backpack/crud": "^7.0.34"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-54175. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Fill models only from validated input with an explicit list of allowed fields.
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-54175 advisory
backpack/crud provides Create, Read, Update & Delete (CRUD) functions for Backpack, a collection of Laravel packages that help users build custom administration panels. Prior to 6.8.11 and 7.0.34, MyAccountController::postAccountInfoForm in src/app/Http/Controllers/MyAccountController.php at POST /admin/edit-account-info passes request data from $request->except(['_token']) to the user model instead of restricting updates to fields accepted by AccountInfoRequest::validationData(). An attacker with an authenticated Backpack session can therefore mass-assign password, the authentication column, or other deployment-specific fillable attributes. With the default Laravel 11 user model, a submitted plaintext password is automatically hashed and persisted, converting temporary session access into persistent account takeover without the old_password check enforced by the separate password-change route. Changing the authentication email can also enable later password-reset takeover, while additional fillable security attributes can permit deployment-specific privilege escalation or security-control changes. This issue is fixed in versions 6.8.11 and 7.0.34.
References
- GitHub advisory GHSA-xpv2-hrfc-hw62 github.com
- Fix commit 0d7a282 github.com
- Fix commit ffe9a43 github.com
- Pull request #5980 github.com
- Pull request #5981 github.com
- Release 6.8.11 github.com
- Release 7.0.34 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.