# resumo: Em Fluxo, o `/api/v 1 A rota do /files` é protegida apenas pelo portão de recursos `feat:files` e não aplica `checkPermission(...)' em `GET` ou `DELETE'. Como resultado, qualquer chave API autenticada dentro da organização, mesmo com permissões não relacionadas, pode listar e excluir arquivos pertencentes a outros espaços de trabalho na mesma organização. # detalhes: A rota `/files` é montada com `IdentityManager.checkFeatureByPlan('feat:files')` somente e não tem permissão adicional de middleware. No controlador: - `getAllFiles` usa apenas `req.user.activeOrganizationId` e chama `getFilesListFromStorage(activeOrganizationId)`, que lista recursivamente arquivos sob a raiz de armazenamento da organização - `deleteFile` lê `activeWorkspaceId`, mas só o usa para a contabilidade de quotas de armazenamento; a remoção real é realizada usando `activeOrganizationId + usuário controlado caminho`.
Como resultado, a tecla API `permissões' e `activeWorkspaceId` não são usadas para restringir o acesso ao arquivo. No ambiente de teste local, uma chave API ligada ao espaço de trabalho ` 1592 b 32 a- a 11 b- 4996 - 80 b 6 - e 1 c 4 c 2969 d 88 ` com apenas `["tools:view"]` foi criado, então com sucesso: - chamado de `GET / api/ v 1 /files` e recebidos ` 200 OK` - listado um arquivo de teste armazenado em um espaço de trabalho diferente, `f 92 a 9 a 4 D- 392 e- 4 db 2 -af 82 - d 14 e 1 d 553446 ` - chamado ` DELETE /api/v 1 /files? caminho=f 92 a 9 a 4 D- 392 e- 4 db 2 -af 82 - d 14 e 1 d 553446 /poc-cross-workspace.txt` e recebeu ` 200 OK` - confirmou que o arquivo foi removido por requisitar novamente a lista de arquivos # impacto: Qualquer porta- chaves de API de baixa prioridade dentro da mesma organização pode listar e excluir arquivos de outros espaços de trabalho sem qualquer permissão específica para arquivos. Isto quebra o isolamento do espaço de trabalho dentro da organização e pode levar ao acesso não autorizado ao arquivo e a manipulação destrutiva.
# passos de reprodução. 1. Faça login como um usuário que pode criar teclas API, e criar uma chave com apenas uma permissão não relacionada, por exemplo: ```` bash curl -i -b tamako.cookie \ -H 'x-request- from: internal' \ -H 'Content-Type: app/json' \ -d '{"keyName":"poc-files- noperm","permissões":["tools:view"]}' \ 8080 /api/v 1 / apikey `` ' 2. Grave a chave API devolvida. No meu teste local, a chave foi:.
- ` ykT 6 h 4 Q-u 2 PZDJmy 2 kMLWWKL_N 42 u 8 mHfYSvHC 5 Ja 0 E` 3. Prepare um arquivo de teste sob um espaço de trabalho diferente dentro da mesma organização, por exemplo: - ` f 92 a 9 a 4 D- 392 e- 4 db 2 -af 82 - d 14 e 1 d 553446 /poc-cross-workspace.txt`.
4. Use a chave API de baixa privilegiação para listar arquivos. ```` rinça de bash -i \ -H 'Autorização: ykT do portador 6 h 4 Q-u 2 PZDJmy 2 kMLWWKL_N 42 u 8 mHfYSvHC 5 Ja 0 E' \ 8080 /api/v 1 / arquivos ``` 5. Observe um ` 200 Resposta OK` que inclui um arquivo de outro espaço de trabalho, por exemplo: ```json [{"nome":"poc-cross-workspace.txt","path":"f 92 a 9 a 4 D- 392 e- 4 db 2 -af 82 - d 14 e 1 d 553446 /poc-cross-workspace.txt","tamanho": 19 }] ```.
6. Use a mesma chave API para excluir aquele arquivo. ```` rinça de bash -i - X DELETE --get \ -H 'Autorização: ykT do portador 6 h 4 Q-u 2 PZDJmy 2 kMLWWKL_N 42 u 8 mHfYSvHC 5 Ja 0 E' \ -- data- urlencode 'path=f 92 a 9 a 4 D- 392 e- 4 db 2 -af 82 - d 14 e 1 d 553446 /poc-cross-workspace.txt' \ 8080 /api/v 1 / arquivos ``` 7. Observe um ` 200 OK` resposta. ````json {"mensagem":"file_leted"} ``` 8. Chamar ` GET / api/ v 1 /files` novamente e confirme que o arquivo não está mais presente.
Registro de aconselhamento: GHSA-wp 74 - f 5 HH- 5 f 3 r. Identificadores relacionados: CVE- 2026 - 69252. Tempo: GitHub Advisory Database publicou este registro em 2026 - 08 - 04 T 14: 54: 03.000 Z e lista a sua última modificação como 2026 - 08 - 04 T 14: 54: 03.000 Z. Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/África do Sul:N.
Informações sobre software e versão afetadas: fluxo do pacote npm — ECOSISTEM: introduzido 0, corrigido 3.1.3. Classificação e evidência: identificadores de fraqueza CWE- 862. O registro contém 5 suporte de referências nestes tipos: WEB, PACKAGE.