CVE-2026-54182
moderateUnauthenticated OS Command Injection in Backpack for Laravel CRUD
Backpack for Laravel's backpack/crud package builds a shell command in Backpack\CRUD\Stats::makeCurlRequest (src/Stats.php), reached during service-provider boot, using a URL derived from the attacker-influenced HTTP Host header and passes it to exec() without adequate shell neutralization. An unauthenticated attacker who sends requests with a malformed Host header that reaches PHP can inject operating-system commands whenever exec() and curl are available and a 1-in-100 random gate is hit, which can be reached reliably simply by repeating requests. Successful exploitation runs commands as the web-server user, exposing environment secrets, files, and reachable services, and allowing data modification or service disruption. All deployments on versions prior to 4.1.70, 5.6.2, 6.8.13, and 7.0.36 are affected, though common reverse-proxy Host validation and hardened PHP configurations (exec() disabled) reduce practical reachability without fixing the flaw. No public proof of concept or in-the-wild exploitation is known at this time.
What to do: Upgrade backpack/crud immediately to 4.1.70, 5.6.2, 6.8.13, or 7.0.36 depending on your major-version branch. As interim hardening, add exec to PHP's disable_functions (or block the outbound curl path), and enforce strict Host header validation/rewriting at your reverse proxy or load balancer so malformed Host values never reach PHP. Review web-server and outbound-connection logs for unusual Host headers or unexpected curl activity as an indicator of attempted exploitation.
| Backpack (Backpack for Laravel) backpack/crud | 4.x prior to 4.1.70 |
| Backpack (Backpack for Laravel) backpack/crud | 5.x prior to 5.6.2 |
| Backpack (Backpack for Laravel) backpack/crud | 6.x prior to 6.8.13 |
| Backpack (Backpack for Laravel) backpack/crud | 7.x prior to 7.0.36 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
backpack/crud provides Create, Read, Update & Delete (CRUD) functions for Backpack, a collection of Laravel packages that help users build custom administration panels. Prior to 4.1.70, 5.6.2, 6.8.13, and 7.0.36, Backpack\CRUD\Stats::makeCurlRequest in src/Stats.php is reached from BackpackServiceProvider::boot() and constructs a shell command with a URL influenced by the HTTP Host header, which it passes to exec() without adequate shell neutralization. An unauthenticated attacker whose malformed Host value reaches PHP can inject operating-system commands when exec() and curl are available and the 1-in-100 random gate is reached. Repeated requests can reach the random gate. Successful exploitation executes commands as the web-server user, exposing environment secrets, files, and reachable services and permitting data modification or service disruption. Common reverse-proxy Host validation and hardened PHP configurations that disable exec() reduce reachability but do not correct the vulnerable construction. This issue is fixed in versions 4.1.70, 5.6.2, 6.8.13, and 7.0.36.
- Weakness
- CWE-20, CWE-78, CWE-116
- Vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
In the news0 stories
No ingested article mentions this CVE yet.