Segurança v1.36.0: RBAC de escrita, revogação de sessão, chave de API fora do DOM#45
Merged
Merged
Conversation
…ra do DOM (v1.36.0) Endurecimento a partir de um teste externo (caixa-preta). Achados reais corrigidos, cada um com teste automatizado (26 novos; 150 no total, sem regressão): - #2 RBAC: novo @write_required enforça papel no servidor nas rotas de mutação de inventário (viewer = 403 no GET-form e POST); botões somem na UI via can_write. - #3 Revogação de sessão (CWE-613): session_token por usuário revalidado a cada request; logout e troca de senha rotacionam o token, invalidando cookies antigos. - #4 Chave de API fora do DOM (CWE-200): HTML só com versão mascarada; cleartext buscado sob demanda em endpoint admin (no-store). - #5 HTTPException não vira mais 500: handler repassa HTTPException + página 405. - #9 /.well-known/security.txt (RFC 9116). Avaliados e mantidos: throttle de login por IP e msg de erro genérica já existiam (#1); rotas admin já exigem @admin_required (#8). Sem lockout por conta (DoS no admin conhecido) — 2FA opt-in é o controle forte. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Endurecimento de segurança a partir de um teste externo (caixa-preta). Vários achados do relatório já estavam cobertos pelo código (throttle por IP, mensagem de erro genérica, anti-SSRF, anti open-redirect); seguem as lacunas reais corrigidas, cada uma com teste.
Corrigido
@write_requiredenforça o papel no servidor nas rotas de mutação (viewer = 403 no GET-form e POST); botões somem na UI viacan_write.session_tokenpor usuário revalidado a cada request; logout e troca de senha rotacionam o token (mantém a sessão atual, derruba as outras; reset por admin derruba o alvo). Cookies legados caem uma vez e o usuário reloga./admin/integrations/<int>/key,no-store)./.well-known/security.txt(RFC 9116).Mantido (avaliado)
@admin_required.Testes
26 novos casos em
tests/test_security_rbac.py(+ fixtureviewer_client); 150 passam, sem regressão.Operacional
Rotacionar senha do
admin+ chave do Home Assistant (expostas no teste) e habilitar 2FA.🤖 Generated with Claude Code