CVE-2026-54181 json
backpack/crud: Stored XSS in the color column — the `@if($column['escaped'])` branches are inverted
published 2026-08-20 2 mo ago modified 2026-09-30 39 d ago also EUVD-2026-77720 , GHSA-mmg4-322v-6jvc
- cvss
- 5.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 24%
- 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.38, src/resources/views/crud/columns/color.blade.php inverts the escaped and raw rendering branches controlled by $column['escaped'], which defaults to true, causing $column['text'] to be rendered unescaped by default. An attacker who can store an unsanitized value in a color column can execute script in the browser of a user who views the CRUD list, including an administrator, with access to the victim's session-backed application capabilities. Exploitation requires write access to the stored color value and a victim viewing the list. This issue is fixed in versions 6.8.14 and 7.0.38.
Patch / fix
- packagist backpack/crud 6.8.14, 7.0.38
- backpackforlaravel backpack\crud 6.8.14, 7.0.38
- github.com/Laravel-Backpack/CRUD@608652b commit
- github.com/Laravel-Backpack/CRUD@76c3a6e commit
- github.com/Laravel-Backpack/CRUD#5992 pull request
- github.com/Laravel-Backpack/CRUD#5994 pull request
- github.com/Laravel-Backpack/CRUD/releases/tag/6.8.14 release
- github.com/Laravel-Backpack/CRUD/releases/tag/7.0.38 release
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 55 d ago
Exploit prediction
0.31% chance of exploitation in the next 30 days, higher than 24% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N |
| GitHub | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/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/5992
- github.com /Laravel-Backpack/CRUD/pull/5994
- github.com /Laravel-Backpack/CRUD/commit/608652b1020ba274781f222d2959d7780a559a08
- github.com /Laravel-Backpack/CRUD/commit/76c3a6e50e3fbd6d5f633208da5b04acb8322969
-
github.com
/Laravel-Backpack/CRUD/security/advisories/GHSA-mmg4-322v-6jvc
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-54181
- GitHub Advisory GHSA-mmg4-322v-6jvc
- NVD CVE-2026-54181
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.