CVE-2026-81892
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.
Properties
- summary
- EasyAdmin custom-action dispatcher bypasses access_control on other routes
- severity
- HIGH
- epss_score
- 0.00448
- cvss_severity
- HIGH
- cvss_score
- 8.1
- retrieved_at
- 2026-10-16T22:35:09+00:00
- ghsa_published
- 2026-09-02T14:39:11Z
- source_url
- https://github.com/advisories/GHSA-g2fm-8hr4-j82h
- ghsa_updated
- 2026-09-02T14:39:12Z
- ghsa_id
- GHSA-g2fm-8hr4-j82h
- score
- 8.1
- last_source
- FIRST EPSS
- cve_id
- CVE-2026-81892
- cvss_vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
- signal_observed_at
- 2026-09-11T17:55:57+00:00
- is_ghsa_only
- false
- vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
- published_at
- 2026-08-31T21:17:52.927
- last_modified
- 2026-09-09T21:09:13.080
- epss_percentile
- 0.37469
Related Entities (8)
DESCRIBED_BY (1)
ENRICHED_BY (1)
REPORTED_BY (1)
VULNERABLE_TO (1)
AFFECTS (1)
HAS_WEAKNESS (3)
Explore deeper with Ninja Signal's threat intelligence graph