A request can reach a controller that your path-based access rules are meant to protect, such as an admin page behind access_control, without passing those rules. It works on routes that use a placeholder in their host.
Symfony's compiled URL matcher let a host placeholder swallow the start of the path. The router then picked the protected route, while the access rules checked a different path.
Who is affected
Apps on symfony/routing (also part of symfony/symfony) with routes that set a host containing a placeholder, such as app.{domain}, and protect those routes with path-based rules: access_control entries or a firewall pattern.
The Symfony advisory says framework.trusted_hosts blocks the attack when the placeholder keeps its default requirement. It doesn't help when the placeholder's requirement accepts /, such as .+. Apps without host placeholders aren't affected.
What to do
Update to 5.4.56, 6.4.50, 7.4.23 or 8.1.11. If you're on 8.0, update to 8.1.11. Then clear your cache: the fix changes how routes are compiled, so your app keeps the vulnerable compiled routes until the cache is rebuilt. Until you can update, set framework.trusted_hosts.
Reported by Vincent Cassiau (CyberVanguard).