EasyAdmin custom-action dispatcher bypasses access_control on other routes
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EasyCorp | EasyAdminBundle | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Easycorp | Easyadmin |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-g2fm-8hr4-j82h | EasyAdmin custom-action dispatcher bypasses access_control on other routes |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.448% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Easycorp
Easycorp easyadmin |
|
| Vendors & Products |
Easycorp
Easycorp easyadmin |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | EasyAdmin is a fast and modern admin generator for Symfony applications. From 4.0.0 until 4.29.16 and 5.5.1, EasyAdmin serves all backend requests through a single dashboard route and, for custom actions (Action::linkToRoute() and MenuItem::linkToRoute()), swaps the executed controller based on the routeName query parameter on the kernel.controller event. The swap happens after Symfony's security firewall has already evaluated access_control against the original dashboard URL, and the routeName value was not validated. As a result, a path-based access_control rule protecting the target route was never evaluated, so a low-privilege backend user who can reach a single EasyAdmin URL and knows a target route's name can execute that route's controller, bypassing the path-based rule. Only path-based protections are bypassed. Routes whose controller enforces its own authorization with #[IsGranted] or denyAccessUnlessGranted() remain protected because those checks are recomputed against the swapped-in controller. This issue is fixed in versions 4.29.16 and 5.5.1. | |
| Title | EasyAdmin custom-action dispatcher bypasses access_control on other routes | |
| Weaknesses | CWE-639 CWE-862 CWE-863 |
|
| References |
|
|
| Metrics |
cvssV3_1
|