Speaker · Speaker · CVE-2026-54510
**Nome do Software Vulnerável e Versões Afetadas**
Speakr versões anteriores a 0.8.21-alpha
**Descrição**
Existe um problema onde o hook before request `csrf exempt for api tokens()` em `src/app.py` chama `csrf.exempt(view func)`, adicionando permanentemente a visualização selecionada ao conjunto de isenção global do processo do Flask-WTF. Além disso, a função `is token authenticated()` em `src/utils/token auth.py` utiliza `extract token from request()` para tratar qualquer token fornecido, como a variável `token` em `request.args.get('token')`, como autenticado sem realizar hashing, consultas ao banco de dados ou verificações de validade. Um invasor com alcance de rede pode fornecer um token falso para desativar a proteção contra Cross-Site Request Forgery (CSRF) para uma visualização específica durante a vida útil do worker. Uma requisição GET de origem cruzada para o endpoint '/account' com um token de consulta pode envenenar o estado do CSRF para requisições POST subsequentes de alteração de estado. Isso permite a modificação de dados de perfil, prompts personalizados, configurações de transcrição, preferências e status administrativo através de rotas como `admin toggle admin`. Além disso, a rota `change password` pode ignorar a verificação da senha atual se `current user.password` estiver vazio, permitindo potencialmente que um invasor defina uma senha local em uma conta exclusiva de SSO e ignore a autenticação de Single Sign-On (SSO).
**Recomendações**
Atualizar para a versão 0.8.21-alpha.