CVE-2026-54179 json
backpack/crud: SingleBase64Image accepts any base64 payload behind a `data:image` prefix — SVG-with-script lands on the public disk
published 2mo ago modified 2mo ago also EUVD-2026-68764 , GHSA-8hw4-7qjr-3wxg
- cvss
- 4.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 18%
- 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. From 6.0.0 until 6.8.14 and 7.0.37, the src/app/Library/Uploaders/SingleBase64Image.php methods SingleBase64Image::uploadFiles and SingleBase64Image::uploadRepeatableFiles, used by image fields through withFiles(), accept any data URI beginning with data:image without validating the declared MIME subtype or decoded bytes, while src/app/Library/Uploaders/Support/FileNameGenerator.php method FileNameGenerator::getExtensionFromFile applies mime_content_type() to the data URI instead of the decoded content. An authenticated administrator can therefore store arbitrary file content under an extensionless filename on the configured disk, which can cause stored cross-site scripting or other unintended behavior when the file is served and accessed. This issue is fixed in version 7.0.38 and 6.8.14.
Patch / fix
- packagist backpack/crud 6.8.14, 7.0.38
- backpackforlaravel backpack\crud 6.8.14, 7.0.38
Is CVE-2026-54179 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2mo ago
Exploit prediction
0.26% chance of exploitation in the next 30 days, higher than 18% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 4.4 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N |
| GitHub | 3.1 | 4.4 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| packagist | backpack/crud | >=6.0.0, <6.8.14 >=7.0.0, <7.0.38 |
6.8.14 7.0.38 |
Affected products
- Laravel-Backpack CRUD
Classification
References
- github.com /Laravel-Backpack/CRUD/pull/5989
- github.com /Laravel-Backpack/CRUD/commit/18b3dc1c607775617f563c41bd1ddb983f11d751
-
github.com
/Laravel-Backpack/CRUD/security/advisories/GHSA-8hw4-7qjr-3wxg
web
-
github.com
/Laravel-Backpack/CRUD/releases/tag/6.8.14
web
-
github.com
/Laravel-Backpack/CRUD/releases/tag/7.0.38
web
-
github.com
/Laravel-Backpack/CRUD
package
Sources
- CVE List CVE-2026-54179
- GitHub Advisory GHSA-8hw4-7qjr-3wxg
- NVD CVE-2026-54179
Fencer Intel 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.