BTCPay corrige falha em permissões de chaves API
O BTCPay Server incorporou, em 19 de outubro, uma correção para uma falha nas permissões de chaves API. O problema poderia permitir que credenciais ligadas a uma loja acessassem funções de servidor ou de conta. Com isso, comerciantes poderiam delegar mais autoridade do que pretendiam ao compartilhar essas chaves com integrações. No entanto, a versão mais recente disponível ainda não incluía o ajuste.
Nicolas Dorier integrou o PR #7684 à ramificação principal de desenvolvimento do projeto. Em 26 de outubro, a lista de versões ainda apontava a versão 2.4.5, de 6 de outubro, como a mais recente. Portanto, uma nova versão ainda precisava levar a correção aos operadores. Até então, o projeto não havia relatado exploração confirmada, comerciantes afetados ou perdas.
Correção separa permissões e escopo de loja
A documentação de autenticação define as chaves API como credenciais limitadas por permissões e por loja. Nesse modelo, um limite determina quais ações o aplicativo pode executar. Já o outro estabelece em qual loja a integração pode atuar. Por isso, os novos testes usam chaves com permissões irrestritas, mas vinculadas a uma única loja.
Um dos testes determina que o sistema bloqueie uma chave de administrador ao tentar acessar funções de servidor. Dessa forma, uma concessão ampla de loja não pode substituir a autorização exigida para funções superiores. Outro teste impede que a chave de um usuário comum exclua a conta do próprio usuário. Contudo, os exemplos não mostram que uma chave restrita apenas a faturas possa obter poderes administrativos.
O acesso ao servidor também depende de o proprietário da chave exercer a função de administrador. Antes da correção, uma concessão de qualquer loja podia atender a uma verificação sem escopo definido. Agora, a alteração no código de autorização limita essa alternativa às permissões de loja. Assim, ela não atende mais às verificações relacionadas ao servidor ou à conta.
Segundo a descrição da proposta, a mudança preserva o comportamento das chaves administrativas existentes sem escopo. Logo, o ajuste se concentra no limite entre permissões de loja e funções mais abrangentes. Essa separação reduz o risco de uma integração obter acesso além do necessário. A medida reforça a proteção de lojas que processam pagamentos em Bitcoin.

Fonte: PR #7684 do BTCPay.
Criação de chaves recebe novas restrições
Além disso, o patch impede que uma chamada autorizada crie uma credencial mais poderosa que a chave solicitante. Nesse cenário, um novo teste cobre uma chave administrativa limitada às configurações do servidor. O sistema deve rejeitar a solicitação quando essa chave tenta gerar uma credencial irrestrita e sem escopo. Com isso, o BTCPay busca evitar escaladas de privilégios durante a criação de chaves.
Os requisitos de entrada para criar credenciais continuam separados. Ao mesmo tempo, o endpoint de autosserviço exige autoridade irrestrita e sem escopo de loja. Já o endpoint administrativo destinado a usuários exige permissão para modificar as configurações do servidor. Depois dessas verificações, a mudança no controlador compara o acesso solicitado com as concessões do usuário.
Na versão 2.4.5, o manipulador de autorização ainda mantém as verificações anteriores. O controlador de chaves também conserva o comportamento antigo. Ainda assim, não está claro qual foi a primeira versão afetada pelo problema. Por esse motivo, a documentação recomenda solicitar apenas as permissões estritamente necessárias. Enquanto isso, comerciantes podem revisar chaves delegadas, privilégios dos proprietários e acessos exigidos pelas integrações.
O próximo marco será o lançamento de uma versão que inclua o PR #7684. Quando isso ocorrer, os operadores precisarão confirmar se a instalação contém a correção. Até lá, convém limitar permissões amplas em credenciais compartilhadas com serviços externos. Sobretudo, essa cautela reduz a exposição de integrações que operam lojas de pagamentos com Bitcoin.
| | Receba nossas últimas notícias em primeira mão. Adicione-nos como sua fonte preferida no Google e toque em “Favorito” para priorizar nossas atualizações. |
|---|