CVE-2026-54178 json
backpack/crud: Arbitrary file deletion via attacker-controlled clear_<attr>[] in HasUploadFields::uploadMultipleFilesToDisk
published 2026-08-20 2 mo ago modified 2026-09-30 39 d ago also EUVD-2026-77708 , GHSA-8xjm-wqrp-2f25
- cvss
- 8.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 47%
- public exploits
- 0
- none known
Summary
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.12 and 7.0.35, HasUploadFields::uploadMultipleFilesToDisk in src/app/Models/Traits/HasUploadFields.php trusts disk-relative paths from clear_<attribute>[] and passes them to Storage::disk()->delete without confirming that the paths are persisted on the current model record. An authenticated user with Update access to a CRUD using this mutator through src/app/Models/Traits/CrudTrait.php can delete another record's attachment, a shared asset, or another operational file on the configured disk by submitting its path. The newer MultipleFiles uploader is not affected because it intersects requested deletions with the record's persisted file list. This flaw does not permit reading the deleted files. The 5.x line remains affected through its final releases. This issue is fixed in versions 6.8.12 and 7.0.35.
Patch / fix
- packagist backpack/crud 6.8.12, 7.0.35
- backpackforlaravel backpack\crud 6.8.12, 7.0.35
- github.com/Laravel-Backpack/CRUD@0c7e095 commit
- github.com/Laravel-Backpack/CRUD@baae042 commit
- github.com/Laravel-Backpack/CRUD#5982 pull request
- github.com/Laravel-Backpack/CRUD#5983 pull request
- github.com/Laravel-Backpack/CRUD/releases/tag/6.8.12 release
- github.com/Laravel-Backpack/CRUD/releases/tag/7.0.35 release
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 53 d ago
Exploit prediction
0.56% chance of exploitation in the next 30 days, higher than 47% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H |
| GitHub | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| packagist | backpack/crud | >=5.0.0 >=6.0.0, <6.8.12 >=7.0.0, <7.0.35 |
6.8.12 7.0.35 |
Affected products
- Laravel-Backpack CRUD
Classification
References
- github.com /Laravel-Backpack/CRUD/pull/5982
- github.com /Laravel-Backpack/CRUD/pull/5983
- github.com /Laravel-Backpack/CRUD/commit/0c7e095a869b8d1bd5668b1370a83b148e75bf4e
- github.com /Laravel-Backpack/CRUD/commit/baae0420b6ebefaf5fe4cd88c1fc358feb9c2816
-
github.com
/Laravel-Backpack/CRUD/security/advisories/GHSA-8xjm-wqrp-2f25
web
-
github.com
/Laravel-Backpack/CRUD/releases/tag/6.8.12
web
-
github.com
/Laravel-Backpack/CRUD/releases/tag/7.0.35
web
-
github.com
/Laravel-Backpack/CRUD
package
Sources
- CVE List CVE-2026-54178
- GitHub Advisory GHSA-8xjm-wqrp-2f25
- NVD CVE-2026-54178
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.