O middleware `MethodOverride` permite que uma requisição POST seja reescrita para um método HTTP seguro (como `GET`, `HEAD`, `OPTIONS` ou `TRACE`). Quando este middleware é registrado antes do middleware `CSRF` na cadeia de pós-roteamento, o método da requisição é alterado antes que o middleware `CSRF` o avalie. Consequentemente, o middleware `CSRF` ignora a validação do token e as verificações `Sec-Fetch-Site` para o que ele percebe como um método seguro, enquanto o manipulador POST de alteração de estado original ainda é executado. Isso permite que uma vítima autenticada seja enganada para realizar operações de alteração de estado via requisição cross-site. O problema originou-se na função `MethodOverrideConfig.ToMiddleware()` em `middleware/method override.go`, que carece de uma lista de permissões para métodos de destino, e na função `CSRFConfig.ToMiddleware()` em `middleware/csrf.go`, que confia no método reescrito.