CVE-2026-54182: Laravel Backpack CRUD: OS command injection in Stats::makeCurlRequest via attacker-controlled Host header (pre-auth)
Backpack\CRUD\Stats::makeCurlRequest builds a shell command using unescaped input that originates from the HTTP Host header, then passes it to exec(). A specially crafted Host header can break out of the shell argument and cause the server to execute arbitrary OS commands as the web user.
The vulnerable code path is reached from BackpackServiceProvider::boot() on every HTTP request in production when exec() and curl are available. A 1-in-100 random gate is the only guard — an attacker can reliably trigger it by retrying.
References
- github.com/Laravel-Backpack/CRUD/releases/tag/4.1.72
- github.com/Laravel-Backpack/CRUD/releases/tag/5.6.2
- github.com/Laravel-Backpack/CRUD/releases/tag/6.8.13
- github.com/Laravel-Backpack/CRUD/releases/tag/7.0.36
- github.com/Laravel-Backpack/CRUD/security/advisories/GHSA-mrc5-3mm3-45c5
- github.com/advisories/GHSA-mrc5-3mm3-45c5
- nvd.nist.gov/vuln/detail/CVE-2026-54182
Code Behaviors & Features
Detect and mitigate CVE-2026-54182 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →