{"id":"CVE-2026-53654","summary":"Grav: Unauthenticated open redirect via login twofa_cancel _redirect","details":"Grav is a file-based Web platform. Prior to 3.8.5, the Login plugin twofa_cancel task accepts a client-controlled _redirect field without a nonce and allows an unauthenticated request to set an external http, https, or protocol-relative Location target. Controller::execute() applies the field when taskTwofa_cancel() sets no redirect, and Grav::getRedirectResponse() accepts the target through Uri::isExternal(), enabling phishing redirects from a trusted Grav host. This issue is fixed in version 3.8.5.","aliases":["GHSA-wwcc-xxhc-44j6"],"modified":"2026-09-11T03:30:57.206848001Z","published":"2026-08-19T15:15:30.263Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-601"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53654.json"},"references":[{"type":"WEB","url":"https://github.com/getgrav/grav-plugin-login/releases/tag/3.8.5"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53654.json"},{"type":"ADVISORY","url":"https://github.com/getgrav/grav/security/advisories/GHSA-wwcc-xxhc-44j6"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53654"},{"type":"FIX","url":"https://github.com/getgrav/grav-plugin-login/commit/1535e51d2a9cbc3f1bb1e262e791c142a06ce959"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/getgrav/grav-plugin-login","events":[{"introduced":"0"},{"fixed":"1535e51d2a9cbc3f1bb1e262e791c142a06ce959"},{"fixed":"869afb0359d057e7d1ff6ab9931988490bb5e79f"}],"database_specific":{"source":["AFFECTED_FIELD","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"3.8.5"}]}}],"versions":["3.8.4","3.8.3","3.8.2","3.8.1","3.8.0","3.7.9","3.7.8.1","3.7.8","3.7.7","3.7.6","3.7.5","3.7.4","3.7.3","3.7.2","3.7.1","3.7.0","3.6.3","3.6.2","3.6.1","3.6.0","3.5.3","3.5.2","3.5.1","3.5.0","3.4.4","3.4.3","3.4.2","3.4.1","3.4.0","3.3.8","3.3.7","3.3.6","3.3.5","3.3.4","3.3.3","3.3.2","3.3.1","3.3.0","3.2.0","3.1.0","3.0.6","3.0.5","3.0.4","3.0.3","3.0.2","3.0.1","3.0.0","2.8.4","3.0.0-rc.4","2.8.3","3.0.0-rc.3","3.0.0-rc.2","3.0.0-rc.1","3.0.0-beta.1","2.8.2","2.8.1","2.8.0","2.7.3","2.7.2","2.7.1","2.7.0","2.6.3","2.6.2","2.6.1","2.6.0","2.5.0","2.4.3","2.4.2","2.4.1","2.4.0","2.3.2","2.3.1","2.3.0","2.2.1","2.2.0","2.1.2","2.2.0-rc.5","2.2.0-rc.3","2.2.0-rc.2","2.2.0-rc.1","2.1.1","2.1.0","2.0.1","2.1.0-rc.2","2.1.0-rc.1","2.0.0","1.3.1","2.0.0-rc.2","2.0.0-rc.1","2.0.0-beta.3","2.0.0-beta.1","1.3.0","1.2.1","1.2.0","1.1.0","1.0.1","1.0.0","0.3.3","0.3.2","0.3.1","0.3.0","0.2.0","0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53654.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N"}]}