U: U2 — endurecimento de postura default; sem deadline externo hard, mas é a diferença entre "avisou" e "protegeu" no primeiro deploy exposto.
G: G2 — postura default insegura quando o operador expõe o serviço sem habilitar auth.
Contexto (auditoria 2026-07-02)
Os três mecanismos de auth (API key global, WebAuthn, RBAC) são opt-in. Hoje, um bind em host não-loopback sem nenhum deles habilitado apenas emite um warning (should_warn_insecure_api_bind) e sobe assim mesmo. O default seguro (bind 127.0.0.1) protege o caso comum, mas o "warn-e-sobe" transfere para o operador leigo a chance de expor o dashBOARd sem auth sem perceber.
Fix recomendado
- Fazer o startup recusar (não apenas avisar) quando o host for não-loopback e nenhum mecanismo de auth estiver habilitado, exigindo uma flag explícita de opt-in (reutilizar a semântica do
--allow-insecure-http já existente).
- Documentar o passo "habilite auth ou passe o opt-in" com destaque no QUICKSTART/TECH_GUIDE.
Não fazer
- Não mudar o default da imagem Docker (loopback + flag é intencional — fora de escopo).
- Não afetar o bind loopback (deve continuar subindo sem fricção).
Critérios de aceite
Milestone sugerido: v1.8.0.
Liga: #1136 (gate de /docs /redoc /openapi.json — mesma auditoria).
Opened by Claude (readonly auditor) — Cursor implements.
U: U2 — endurecimento de postura default; sem deadline externo hard, mas é a diferença entre "avisou" e "protegeu" no primeiro deploy exposto.
G: G2 — postura default insegura quando o operador expõe o serviço sem habilitar auth.
Contexto (auditoria 2026-07-02)
Os três mecanismos de auth (API key global, WebAuthn, RBAC) são opt-in. Hoje, um bind em host não-loopback sem nenhum deles habilitado apenas emite um warning (
should_warn_insecure_api_bind) e sobe assim mesmo. O default seguro (bind127.0.0.1) protege o caso comum, mas o "warn-e-sobe" transfere para o operador leigo a chance de expor o dashBOARd sem auth sem perceber.Fix recomendado
--allow-insecure-httpjá existente).Não fazer
Critérios de aceite
check-allverde.Milestone sugerido: v1.8.0.
Liga: #1136 (gate de /docs /redoc /openapi.json — mesma auditoria).
Opened by Claude (readonly auditor) — Cursor implements.