Sceawere
Vulnerability Detail
CVE-2026-54177UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
Backpack CRUD Unrestricted File Upload RCE
Vulnerability Metadata
- Severity
- Medium
- Score / CVSS
- 6.6
- Creation Date
- 3h ago
- Vendor
- Laravel-Backpack
- Product
- CRUD
- Attack Type
- CWE-434: Unrestricted Upload of File with Dangerous Type
- Vector String
- CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
- Attack Complexity
- HIGH
Narrative and Response
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.38, HasUploadFields methods uploadFileToDisk and uploadMultipleFilesToDisk, used through CrudTrait, and the withFiles() path through FileNameGenerator do not internally reject server-executable file types. An authenticated administrator can achieve remote code execution by using an upload-enabled CRUD field without mimes: and mimetypes: validation when the public disk is web-accessible through php artisan storage:link and the web-server and PHP-FPM configuration executes the stored extension. The legacy path preserves an accepted extension and the newer path derives an extension without blocking dangerous types. The package-level restriction is defense in depth and does not replace application-level upload validation. This issue is fixed in versions 6.8.14 and 7.0.38.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "6.6",
"pubDate": "2026-09-14T18:17:52.757Z",
"pubdate": "2026-09-14T18:17:52.757Z",
"executiveSummary": "An improper input validation vulnerability exists within the HasUploadFields methods of backpack/crud, specifically affecting uploadFileToDisk, uploadMultipleFilesToDisk, and the withFiles() path via FileNameGenerator.\nThe vulnerability allows an authenticated administrator to achieve Remote Code Execution (RCE) by uploading server-executable files (e.g., .php scripts) if the public disk is web-accessible and the environment configuration permits script execution.\nThis issue stems from the component's failure to internally validate or reject sensitive file extensions during the upload process.\nThe vulnerability affects backpack/crud versions 6.0.0 through 6.8.14 and 7.0.38.\nRisk is significant, as successful exploitation enables full system compromise through arbitrary code execution, assuming the attacker has administrative access to the CRUD interface and the underlying server environment is configured to execute files stored within the public directory.",
"technicalDetails": "The root cause of this vulnerability is the absence of intrinsic file type validation (MIME/extension filtering) within the file handling logic of the HasUploadFields trait and the FileNameGenerator class.\nWhen a user utilizes an upload-enabled CRUD field without explicitly defining Laravel-native 'mimes:' or 'mimetypes:' validation rules, the package fails to enforce a security boundary on the uploaded file extensions.\nThe flaw manifests in two primary paths: the legacy upload methods (uploadFileToDisk and uploadMultipleFilesToDisk) and the newer withFiles() path. These functions accept user-provided file inputs and write them to the storage disk without sanitizing the extension or verifying the file content against a blocklist of dangerous file types.\nExploitation requires an authenticated administrator to interact with a vulnerable CRUD field. An attacker can craft a payload disguised as a legitimate upload but containing executable PHP code. By targeting a location managed by php artisan storage:link, the file is stored in a web-accessible directory.\nIf the web-server (e.g., Nginx, Apache) and PHP-FPM configuration are set to process PHP files in that specific storage path, the uploaded script will be executed upon a direct HTTP request to the file's path. This results in arbitrary code execution with the permissions of the web server process.\nThe vulnerability is present in versions 6.0.0 up to 6.8.14 and 7.0.38. While the package maintainers classify the fix as defense-in-depth, the absence of internal protections makes applications relying solely on the package default configuration highly susceptible to RCE if administrative credentials are compromised or misused.\nPost-exploitation, the attacker gains the ability to execute arbitrary commands on the server, facilitating lateral movement, data exfiltration, or complete persistence within the application environment."
}