d8cb2526de
The relative-redirect check accepted /\evil.test (and /<TAB>/evil.test): the WHATWG URL parser used by the url crate treats \ as / and strips ASCII tab/newline/CR, so url::Url::join turned these into the external authority evil.test when building post_logout_redirect_uri. is_safe_relative_redirect now rejects any backslash or ASCII control character, applied via one shared helper in verify_logout_params, validate_redirect_url, and sqlpage.oidc_logout_url.