{"id":"GHSA-6439-2f28-8p8q","aliases":["CVE-2026-45075"],"title":"Symfony's HEAD Request Bypasses methods: ['GET'] Filter in #[IsGranted] / #[IsSignatureValid] / #[IsCsrfTokenValid]","titleSource":"OSV","descriptionSource":"OSV","declaredSeverity":"HIGH","description":"### Description\n\nSymfony's `#[IsGranted('...')]`, `#[IsSignatureValid]`, and `#[IsCsrfTokenValid(...)]` attributes allow you to define a `methods: [...]` argument to only enforce these checks for the listed HTTP methods and skip them otherwise. E.g. an attribute defining `methods: ['GET']` would be ignored for a `HEAD` request.\n\nOn the other hand, Symfony's router (and HTTP semantics generally) serves `HEAD` requests using the `GET` handler. Therefore, a controller protected by e.g. `#[IsGranted('ROLE_ADMIN', methods: ['GET'])]` can be reached via `HEAD` with the authorization check silently skipped.\n\nEven if the `HEAD` request won't get any response content, response headers leak (`Content-Length`, `Location`, custom headers). Also, the controller still executes and any side effects (DB writes, state changes) occur.\n\n### Resolution\n\nWhen adding `GET` in the `methods` option of these attributes, Symfony now also include the `HEAD` method automatically.\n\nThe patch for this issue is available [here](https://github.com/symfony/symfony/commit/fa8d5c67aa4b22c9656e3fd7d5c3aa59865bf838) for branch 7.4.\n\n### Credits\n\nSymfony would like to thank Claude Mythos Preview (via Project Glasswing) for reporting the issue and Alexandre Daubois for fixing it.","severity":"high","score":8.6,"published":"2026-05-27T21:12:38.000Z","modified":"2026-09-10T03:51:04.868Z","withdrawn":false,"knownExploited":false,"affected":[{"ecosystem":"Packagist","name":"symfony/http-kernel","sources":[{"name":"OSV · GHSA-6439-2f28-8p8q","url":"https://osv.dev/vulnerability/GHSA-6439-2f28-8p8q"}],"ranges":[{"events":[{"introduced":"7.4.0"},{"fixed":"7.4.12"}],"type":"ECOSYSTEM"}],"versions":["v7.4.0","v7.4.1","v7.4.10","v7.4.11","v7.4.2","v7.4.3","v7.4.4","v7.4.5","v7.4.6","v7.4.7","v7.4.8"],"fixed":["7.4.12"]},{"ecosystem":"Packagist","name":"symfony/http-kernel","sources":[{"name":"OSV · GHSA-6439-2f28-8p8q","url":"https://osv.dev/vulnerability/GHSA-6439-2f28-8p8q"}],"ranges":[{"events":[{"introduced":"8.0.0"},{"fixed":"8.0.12"}],"type":"ECOSYSTEM"}],"versions":["v8.0.0","v8.0.1","v8.0.10","v8.0.11","v8.0.2","v8.0.3","v8.0.4","v8.0.5","v8.0.6","v8.0.7","v8.0.8"],"fixed":["8.0.12"]},{"ecosystem":"Packagist","name":"symfony/security-http","sources":[{"name":"OSV · GHSA-6439-2f28-8p8q","url":"https://osv.dev/vulnerability/GHSA-6439-2f28-8p8q"}],"ranges":[{"events":[{"introduced":"7.4.0"},{"fixed":"7.4.12"}],"type":"ECOSYSTEM"}],"versions":["v7.4.0","v7.4.1","v7.4.11","v7.4.3","v7.4.4","v7.4.6","v7.4.8","v7.4.9"],"fixed":["7.4.12"]},{"ecosystem":"Packagist","name":"symfony/security-http","sources":[{"name":"OSV · GHSA-6439-2f28-8p8q","url":"https://osv.dev/vulnerability/GHSA-6439-2f28-8p8q"}],"ranges":[{"events":[{"introduced":"8.0.0"},{"fixed":"8.0.12"}],"type":"ECOSYSTEM"}],"versions":["v8.0.0","v8.0.1","v8.0.11","v8.0.3","v8.0.4","v8.0.6","v8.0.8","v8.0.9"],"fixed":["8.0.12"]},{"ecosystem":"Packagist","name":"symfony/symfony","sources":[{"name":"OSV · GHSA-6439-2f28-8p8q","url":"https://osv.dev/vulnerability/GHSA-6439-2f28-8p8q"}],"ranges":[{"events":[{"introduced":"7.4.0"},{"fixed":"7.4.12"}],"type":"ECOSYSTEM"}],"versions":["v7.4.0","v7.4.1","v7.4.10","v7.4.11","v7.4.2","v7.4.3","v7.4.4","v7.4.5","v7.4.6","v7.4.7","v7.4.8","v7.4.9"],"fixed":["7.4.12"]},{"ecosystem":"Packagist","name":"symfony/symfony","sources":[{"name":"OSV · GHSA-6439-2f28-8p8q","url":"https://osv.dev/vulnerability/GHSA-6439-2f28-8p8q"}],"ranges":[{"events":[{"introduced":"8.0.0"},{"fixed":"8.0.12"}],"type":"ECOSYSTEM"}],"versions":["v8.0.0","v8.0.1","v8.0.10","v8.0.11","v8.0.2","v8.0.3","v8.0.4","v8.0.5","v8.0.6","v8.0.7","v8.0.8","v8.0.9"],"fixed":["8.0.12"]}],"sourceAffected":[],"references":["https://github.com/symfony/symfony/security/advisories/GHSA-6439-2f28-8p8q","https://github.com/symfony/symfony/commit/fa8d5c67aa4b22c9656e3fd7d5c3aa59865bf838","https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/http-kernel/CVE-2026-45075.yaml","https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/security-http/CVE-2026-45075.yaml","https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2026-45075.yaml","https://github.com/symfony/symfony","https://symfony.com/cve-2026-45075"],"sources":[{"name":"OSV","id":"GHSA-6439-2f28-8p8q","modified":"2026-09-10T03:51:04.868176127Z","url":"https://osv.dev/vulnerability/GHSA-6439-2f28-8p8q"}],"assessments":[{"source":"OSV","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","score":8.6}],"products":[],"remediation":[],"kev":{"status":"not-listed","checkedAt":"2026-10-28T22:05:31.879Z"},"coverage":[{"source":"NVD","status":"not-checked"},{"source":"GHSA","status":"not-checked"},{"source":"EUVD","status":"not-checked"},{"source":"EPSS","status":"not-checked"}],"evidence":[]}