Descoberta e escopo da vulnerabilidade
A comunidade de segurança da informação recebeu um alerta crítico sobre uma falha de controle de acesso no Keycloak, uma plataforma de gerenciamento de identidade e acesso amplamente utilizada por organizações para autenticação e autorização. A vulnerabilidade, rastreada como CVE-2026-17059, foi identificada pelo pesquisador Enzo Mongin, conhecido como Orionexe, da empresa de segurança Escape. O problema reside na API REST administrativa do Keycloak e permite que administradores com permissões restritas acessem informações sensíveis de usuários fora de seu escopo permitido.
Red Hat publicou o CVE em 24 de julho de 2026, e a correção foi implementada pelo Keycloak em 28 de julho com o lançamento da versão 26.7.0. A falha é classificada como broken object-level authorization (controle de acesso quebrado), sob o CWE-639, e possui uma pontuação CVSS de 6.5, considerada média. No entanto, o impacto potencial em ambientes corporativos que utilizam permissões granulares pode ser significativo, especialmente em cenários de compartilhamento de reinos (realms) e delegação de administração.
O que mudou agora
Antes da correção, a vulnerabilidade existia no endpoint utilizado para listar membros atribuídos a uma função específica: GET /admin/realms/{realm}/roles/{role-name}/users. Um administrador restrito, que possuía apenas as permissões query-users e view-realm, poderia chamar este endpoint e obter registros completos de usuários para membros de funções que ele estava autorizado a visualizar. As informações expostas incluíam nomes de usuário, endereços de e-mail, nomes de primeiro e último, status da conta e status de verificação de e-mail.
A Escape descobriu que o Keycloak protegia corretamente seu endpoint principal de listagem de usuários. Quando um administrador restrito consultava a API de usuários padrão, o Keycloak retornava uma resposta vazia porque a conta não possuía a privacidade view-users. No entanto, o endpoint de membros de função aplicava apenas permissões amplas de visualização de função e consulta de usuário, sem aplicar o mesmo filtro de autorização por usuário.
Como resultado, o mesmo token que retornava uma lista vazia do endpoint principal de usuários poderia recuperar dados pessoais através da API de membros de função. Isso cria um risco de privacidade em reinos do Keycloak compartilhados, particularmente onde uma conta estilo helpdesk pode ser intencionalmente restrita para navegar em todo o diretório de usuários.
Impacto e alcance
A exploração requer uma conta de administrador autenticada, mas deliberadamente limitada, tornando este problema particularmente relevante para organizações que delegam a administração parcial do Keycloak a equipes de suporte ou unidades de negócios. O caminho de código vulnerável foi localizado em RoleContainerResource.getUsersInRole, que buscava membros da função e os convertia diretamente em representações de usuário sem verificar se o chamador estava autorizado a visualizar cada usuário individual.
A correção adiciona a validação de visibilidade por usuário necessária antes que os registros de usuário sejam retornados. Reinos que utilizam permissões administrativas granulares versão 2 não são afetados, pois a filtragem ocorre na camada de armazenamento de dados. A exposição impacta principalmente implantações que utilizam o modelo de permissão padrão, onde adminPermissionsEnabled está definido como false.
Medidas de mitigação recomendadas
As organizações devem atualizar o Keycloak para a versão 26.7.0 ou posterior. Os administradores também devem revisar as contas atribuídas às funções query-users e view-realm, especialmente em ambientes multi-equipe. Equipes de segurança devem testar endpoints de API irmãos para comportamento consistente de autorização, pois uma rota primária protegida não garante que caminhos alternativos imponham os mesmos controles de acesso.
Para CISOs e equipes de governança, é crucial revisar a configuração de permissões administrativas. Se a funcionalidade de permissões granulares (adminPermissionsEnabled) estiver habilitada, o risco é mitigado na camada de dados. Caso contrário, a atualização imediata é mandatória. Além disso, a auditoria de logs de acesso administrativo deve ser reforçada para detectar tentativas de acesso a endpoints de função que não correspondam às permissões esperadas.
Implicações regulatórias (LGPD)
No contexto brasileiro, a exposição de nomes de usuário, e-mails e status de contas pode configurar violação de dados pessoais sob a Lei Geral de Proteção de Dados (LGPD). Organizações que operam no Brasil e utilizam Keycloak para gerenciar identidades de clientes ou funcionários devem avaliar se a falha permitiu o acesso não autorizado a dados pessoais. A notificação à Autoridade Nacional de Proteção de Dados (ANPD) e aos titulares afetados pode ser necessária, dependendo da natureza e do volume dos dados expostos.
Perguntas frequentes
- Qual a gravidade da falha? CVSS 6.5 (Média), mas o impacto de privacidade pode ser alto dependendo dos dados.
- Quem é afetado? Implantações do Keycloak com permissões administrativas padrão (adminPermissionsEnabled = false).
- Como verificar a versão? Verifique a versão do servidor Keycloak na interface administrativa ou via API de status.
- É necessário reiniciar o serviço? Sim, após a atualização para a versão 26.7.0, um reinício é recomendado para garantir que as correções de código sejam carregadas.