Plataforma
laravel
Componente
laravel/passport
Corrigido em
13.0.1
13.7.1
Uma vulnerabilidade de bypass de autenticação foi descoberta no laravel/passport versões anteriores ou iguais a 13.7.0. A falha permite que tokens de máquina-a-máquina autentiquem inadvertidamente como usuários reais, comprometendo a segurança do sistema. A vulnerabilidade foi corrigida na versão 13.7.1.
CVE-2026-39976 é uma vulnerabilidade de bypass de autenticação no Laravel, especificamente relacionada ao uso de tokens clientcredentials e à biblioteca league/oauth2-server. A vulnerabilidade reside na forma como a biblioteca define a declaração 'sub' (sujeito) no JWT. Em cenários de token clientcredentials (onde nenhum usuário está associado), a biblioteca usa o identificador do cliente como o valor de 'sub'. O guardião de tokens do Laravel, sem validação adequada, passa esse valor para retrieveById(), o que pode resultar na recuperação de um usuário real e inesperado. Isso permite que um token máquina a máquina, criado para um cliente específico, possa, inadvertidamente, autenticar-se como um usuário legítimo do sistema. A vulnerabilidade é agravada quando se utiliza o middleware EnsureClientIsResourceOwner juntamente com a configuração Passport::$clientUuids.
Um atacante pode explorar esta vulnerabilidade gerando um token client_credentials para um cliente OAuth2. Devido à forma como a declaração 'sub' é definida, o atacante pode manipular o token para que o guardião de tokens do Laravel tente recuperar um usuário real pelo seu ID de cliente. Se o ID de cliente corresponder a um ID de usuário existente, o atacante pode obter acesso não autorizado à conta desse usuário. A probabilidade de sucesso depende de se o ID de cliente corresponde a um ID de usuário existente. O middleware EnsureClientIsResourceOwner e a configuração Passport::$clientUuids podem influenciar a superfície de ataque, restringindo quais clientes podem ser usados para este tipo de ataque.
Status do Exploit
EPSS
0.07% (percentil 20%)
CISA SSVC
Vetor CVSS
A principal mitigação para CVE-2026-39976 é atualizar para a versão 13.7.1 ou superior do Laravel. Esta atualização corrige a vulnerabilidade validando corretamente o valor 'sub' no token JWT durante o processo de autenticação. Além disso, revise a configuração de Passport::$clientUuids para garantir que apenas os UUIDs de clientes autorizados sejam incluídos. Se uma atualização imediata não for possível, uma validação personalizada pode ser implementada no guardião de tokens para verificar se o valor 'sub' corresponde a um identificador de usuário válido antes de chamar retrieveById(). Aplicar esta correção o mais rápido possível é crucial para evitar possíveis ataques de bypass de autenticação.
Atualize Laravel Passport para a versão 13.7.1 ou superior para mitigar a vulnerabilidade de autenticação por bypass. Esta atualização corrige o problema ao validar corretamente os identificadores de usuário ao gerar tokens client_credentials.
Análise de vulnerabilidades e alertas críticos diretamente no seu e-mail.
É um tipo de token OAuth2 usado para autenticação de aplicativos máquina a máquina, onde nenhum usuário final está diretamente envolvido.
Esta versão contém a correção para CVE-2026-39976, que mitiga a vulnerabilidade de bypass de autenticação.
É uma configuração no Laravel Passport que define uma lista de UUIDs de clientes autorizados. Uma configuração incorreta pode aumentar o risco de exploração.
Se você estiver usando Laravel Passport com tokens client_credentials e não atualizou para a versão 13.7.1 ou superior, provavelmente é vulnerável.
Implemente uma validação personalizada no guardião de tokens para verificar se o valor 'sub' é um identificador de usuário válido.
Envie seu arquivo de dependências e descubra na hora se esta e outras CVEs te atingem.
Envie seu arquivo composer.lock e descubra na hora se você está afetado.