`next-auth` (Auth.js) v 5 os aplicativos que acessem por portãos, verificando somente a **existência** do objeto `auth` — o padrão mostrado no guia oficial [gestão de sessão / proteção de recursos] ( started/session-management/protectioning) — são afetados. Quando a configuração Auth.js produz um erro do lado do servidor, o objeto `auth` exposto pelo wrapper `auth()` (no middleware, Route Handlers, etc.) é ** repovoado com um objeto de erro em vez de ser `null`**: ```json { "message": "Há um problema com a configuração do servidor. Verifique os registros do servidor para mais informações." } ``` Como este objeto é verdadeiro, qualquer verificação de autorização do formulário `!!auth` (ou ` se (req.auth)`) avalia para ‘verdadeiro` para **todos os pedidos**, incluindo os não autenticados. O aplicativo * falhas abertas*: em vez de negar o acesso quando a camada de autificação está quebrada, ele dá acesso a todos. ``` ts // middleware.ts — padrão de exportação afetado auth(((req)) => { const { nextUrl, auth } = req const isLoggedIn =!!auth // <-- sempre verdadeiro quando a configuração está quebrada //... }) ````.
Um gatilho representativo é um provedor que está faltando a configuração necessária. Por exemplo, um provedor de Keycloak com nem 'emisor' nem 'autorização' registros dos endpoints definidos: ``` [auth][error] InválidoEndpoints: O "keycloak" do fornecedor está faltando tanto a configuração do endpoint `emitter` quanto `autorization`. Pelo menos um deles é necessário. ``` ...e a partir desse ponto no `auth` é o objeto de erro acima, então `!!auth` é permanentemente `verdadeiro`. O mesmo comportamento de abertura de falha ocorre para outros erros de configuração do servidor (por exemplo, um desajuste `AUTH_SECRET`). Há ** nenhum impacto enquanto a configuração é válida**. O risco se materializa quando uma implantação anterior se configura mal — por exemplo, uma variável de ambiente é alterada ou removida durante uma implantação — em que o autônimo baseado na existência verifica silenciosamente parar de proteger rotas e todos os visitantes são tratados como autentificados. Como o modo de falha é silencioso e dá acesso a todos, as consequências podem ser graves. Esta é uma instância de CWE- 636 (Não Falha Seguramente / " Falha Aberto") levando a autorização inadequada (CWE- 285 ).
A correção garante que um erro de configuração do servidor não mais surja como um objeto verdadeiro `auth`: as verificações de existência falham **fechado** em vez de aberto. Isto é lançado em `next-auth@ `. ```sh npm i next-auth@beta `````sh fio adicionar next-auth@beta ``````````sh pnpm adicionar next-auth@beta ``` Se você não puder atualizar imediatamente, verifique se existe uma propriedade de usuário/sexuação concreta em vez do objeto nu, de modo que um objeto de configuração- erro não é tratado como uma sessão autenticada: ``` ts // middleware.ts exportar por omissão auth(((req) => { // `auth.user` está presente apenas em uma sessão real; a resistência aos objetos de configuração- erro const isLoggedIn =!!req.auth?.user //... }) ``` Como defesa em profundidade, faça com que os erros de configuração do Auth.js falhem alto no seu canal de implantação (por exemplo, trate as linhas de log `[auth][error]` como uma verificação de saúde falhada) para que uma configuração quebrada não possa alcançar a produção silenciosamente. Como sempre, uma sessão existente indica somente autenticação — para autorização, efetue uma verificação explícita do papel/ permissão em vez de confiar na existência da sessão. Veja o guia de controle de acesso baseado em roles ( de acesso baseado em roles).
- Proteger recursos / gestão de sessão: - Controle de acesso baseado em papel (RBAC): - Referência de erro de Auth.js: ### Para mais informações. Se você tiver alguma preocupação, Auth.js solicita divulgação responsável, delineada aqui: Relato pelo @marc- zollingkoffer-syzygy. Registro de aconselhamento: GHSA- 8 fpg-xm 3 f- 6 cx 3. Identificadores relacionados: CVE- 2026 - 73421.
Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 23 T 14: 52: 23.000 Z e lista a sua última modificação como 2026 - 08 - 12 T 20: 31: 20.000 Z. Gravidade: Crítico. Dados de pontuação publicados: CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/África do Sul:N. Software afetado e informações de versão: pacote npm next- auth — ECOSISTEM: introduzido 5.0.0 -Beta. 0, corrigido 5.0.0 -Beta. 32. Classificação e evidência: identificadores de fraqueza CWE- 285, CWE- 636. O registro contém 4 suporte de referências nestes tipos: WEB, PACKAGE.