Vulnerabilidades do Paperclip em 16/04/2026

As falhas publicadas em 16/04/2026 permitem que credenciais de agentes alcancem comandos e arquivos do servidor. Há também acessos entre empresas e um relato de uso do Gmail herdado pelo codex_local. Você pode comparar cada recurso com a sua instalação e usar a conferência da ficha para revisar a configuração ou o histórico correspondente.

AplicativoPaperclip
Data do compilado
Vulnerabilidades10

As faixas de versões reproduzem os campos da API, inclusive os prefixos v e os formatos distintos de numeração. Uma correção disponível no projeto exige atualização da sua instância. O aviso sobre Gmail não informa uma versão corrigida.

Gravidade críticaCVSS: 9,9/10Correção disponível

Criação e revogação de chaves de agentes de outra empresa

As rotas de gerenciamento de chaves verificam se a sessão é do tipo board, mas deixam de conferir o acesso à empresa do agente. Um membro da empresa A que conhece o identificador de um agente da empresa B pode listar suas chaves, criar um token ou revogar uma credencial legítima. O token criado pertence à empresa B e permite executar as ações autorizadas para aquele agente.

Casos de uso afetados

  • Você administra várias empresas na mesma instância e cada uma possui seus próprios agentes. Uma sessão limitada a uma empresa consegue gerenciar chaves de outra ao fornecer o identificador do agente na URL.

Confira na sua instância

Revise os registros de criação e revogação de chaves, comparando o autor de cada ação com os membros da empresa do agente. No código instalado, confira a autorização por empresa nos handlers GET e POST de /api/agents/:id/keys. Para DELETE, examine se a empresa da própria chave é validada e se a chave pertence ao agente indicado na rota.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
@paperclipai/server (npm)<= 2026.410.0-canary.1v2026.416.0

Este comunicado cobre listagem, criação e revogação de chaves. O aviso GHSA-47wq-cj9q-wpmp também descreve essas rotas, com demonstração usando uma sessão sem vínculo com nenhuma empresa.

Gravidade críticaCVSS: 9,9/10Correção disponível

Emissão de tokens de outra empresa por uma sessão sem vínculo

O comunicado demonstra que uma sessão board recém-criada, sem vínculo com nenhuma empresa, consegue emitir um token para um agente de outra empresa. A rota /api/agents/:id/keys aceita a sessão sem chamar assertCompanyAccess e associa a credencial à empresa do agente escolhido. O relato também identifica a mesma falta de autorização nas ações de pausar, retomar, encerrar e excluir agentes.

Casos de uso afetados

  • A sua instância usa o modo authenticated com cadastro aberto, pois PAPERCLIP_AUTH_DISABLE_SIGN_UP está ausente ou false. Um atacante pode registrar um perfil e alcançar agentes existentes mesmo que a listagem de empresas dessa sessão esteja vazia.

Confira na sua instância

Confira o modo de implantação e o valor de PAPERCLIP_AUTH_DISABLE_SIGN_UP. Revise perfis recém-registrados sem vínculo empresarial e compare seus registros de atividade com emissões de chaves ou alterações no estado de agentes. Examine a autorização por empresa tanto nas rotas de chaves quanto em /pause, /resume, /terminate e na exclusão de agentes.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
@paperclipai/server (npm)<= 2026.411.0-canary.8v2026.416.0

A demonstração foi feita em 2026.411.0-canary.8, após a correção anterior de importação. Desativar novos cadastros limita esse caminho de entrada, mas não corrige as permissões das sessões existentes.

Gravidade críticaCorreção disponível

Execução de comandos ao arquivar um workspace

A rota PATCH /api/execution-workspaces/:id aceita cleanupCommand na configuração do workspace. Quando esse workspace é arquivado, o servidor envia o valor armazenado ao shell sem validar o comando. Um atacante pode executar código com as permissões do processo do Paperclip. No modo local_trusted, chamadas que alcançam a API recebem acesso implícito, sem autenticação.

Casos de uso afetados

  • Você usa o modo local_trusted em uma instalação de desktop. Um processo capaz de alcançar a API local pode alterar a configuração de limpeza e acionar o arquivamento do workspace.
  • No modo authenticated, um membro com acesso à empresa pode modificar essa configuração. A execução afeta o host do Paperclip e os arquivos acessíveis ao processo, inclusive os repositórios dos workspaces.

Confira na sua instância

Revise config.cleanupCommand nos workspaces existentes e identifique alterações inesperadas no histórico da rota /api/execution-workspaces/:id. Compare essas alterações com eventos de arquivamento e os comandos registrados durante a limpeza. Confira o modo de implantação e o alcance da API pela rede. Não arquive um workspace com comando desconhecido para testar a falha.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
paperclip (npm)<2026.416.02026.416.0

Os campos estruturados de CVSS da API estão vazios, embora o texto do relato mencione 9.8. A classificação crítica foi preservada e a pontuação permanece sem preenchimento.

Gravidade altaCVSS: 8,8/10Correção disponível

Execução de comandos no servidor pelo provisionamento do agente

O campo adapterConfig.workspaceStrategy.provisionCommand define o comando usado para preparar o workspace. A falha permite que um atacante com uma chave de agente altere esse campo pela rota PATCH /api/agents/:id e acione o provisionamento. O servidor executa o conteúdo em um shell com as permissões do processo do Paperclip, permitindo acessar segredos e modificar os repositórios disponíveis no host.

Casos de uso afetados

  • Você usa workspaces com a estratégia git_worktree e mantém chaves de agentes em runtimes ou integrações externas. Uma chave comprometida permite alterar o comando de provisionamento sem acesso administrativo ao painel.

Confira na sua instância

Confira a versão do servidor e abra a configuração dos agentes que usam workspaceStrategy. Revise os valores de provisionCommand e o histórico de alterações em adapterConfig, relacionando cada mudança às execuções de provisionamento. Na implementação instalada, confira se a rota de atualização recusa alterações desse campo autenticadas com chave de agente.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
paperclip (node.js application)<= v0.3.12026.416.0

O aviso também possui o identificador CVE-2026-41208. Restringir a edição do comando é uma mitigação proposta no comunicado, não uma comprovação de que sua instância recebeu a correção.

Gravidade altaCVSS: 8,7/10Correção não informada

Acesso ao Gmail herdado pelo runtime codex_local

O relato documenta um runtime codex_local gerenciado pelo Paperclip que conseguiu usar o Gmail conectado na interface de apps do ChatGPT/OpenAI, sem uma conexão específica configurada no Paperclip. O agente consultou mensagens e enviou emails pelo Gmail pessoal do pesquisador. O adaptador ainda aplicava dangerouslyBypassApprovalsAndSandbox como true por padrão, permitindo executar ações sem as aprovações e o isolamento esperados.

Casos de uso afetados

  • Você executa agentes codex_local em uma instalação própria e usa uma autenticação da OpenAI com o Gmail conectado. O runtime pode herdar esse conector e alcançar recursos de leitura e envio que você não autorizou especificamente para o Paperclip.

Confira na sua instância

Examine os logs de codex_local para localizar chamadas gmail_get_profile, gmail_search_emails ou gmail_send_email e identificar o perfil retornado. Confira o cache de conectores em codex-home/plugins/cache/openai-curated/gmail e o valor efetivo de dangerouslyBypassApprovalsAndSandbox. Consulte o histórico de mensagens enviadas para identificar envios do agente, sem disparar um email de teste.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
paperclipai (npm)2026.403.0Não informadas

A fonte registra apenas 2026.403.0 como versão afetada e deixa patched_versions vazio. Não há versão corrigida informada neste aviso. Desativar o desvio de aprovações e revisar os conectores herdados são medidas propostas, sem confirmação de correção do isolamento.

Gravidade altaCVSS: 8,3/10Correção disponível

Rotas acessíveis sem autenticação no modo authenticated

Algumas rotas continuam respondendo sem sessão ou chave mesmo quando o Paperclip usa o modo authenticated. A consulta de issues de um heartbeat run omite a autorização por empresa, e a criação de desafios de autenticação da CLI não confere a identidade. As rotas de skills expõem instruções dos agentes, enquanto /api/health revela configurações da implantação que ajudam a identificar a instância.

Casos de uso afetados

  • A sua API pode ser alcançada pela rede e usa o modo authenticated. Um atacante que obtém um runId válido consegue consultar as issues associadas sem credenciais.
  • As rotas de skills e health ficam disponíveis sem sessão, e a criação de desafios da CLI fornece um boardApiToken que só se torna ativo após a aprovação do desafio.

Confira na sua instância

Em uma sessão sem cookies nem cabeçalho Authorization, confira a resposta de GET /api/heartbeat-runs/:runId/issues usando um identificador de execução de teste. Verifique também o conteúdo exposto por /api/skills/index, /api/skills/paperclip e /api/health. Para /api/cli-auth/challenges, revise os registros e a exigência de autenticação no handler, sem criar ou aprovar uma credencial para testar.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
Paperclip (ecossistema paperclip, pacote não informado)<0.3.12026.416.0

O boardApiToken mencionado depende da aprovação do desafio para funcionar. A faixa <0.3.1 e a correção 2026.416.0 pertencem a formatos diferentes na própria API e foram mantidas sem conversão.

Gravidade altaCVSS: 7,3/10Correção disponível

Execução no servidor induzida por uma skill maliciosa

Uma skill apresentada como diagnóstico pode instruir o agente a alterar runtimeConfig de um workspace e iniciar seu serviço de runtime. O servidor executa o comando configurado por meio de spawn em um shell, sem restringir o conteúdo. A demonstração alcançou variáveis de ambiente do servidor, expondo chaves de serviços e credenciais do banco fora do workspace do agente.

Casos de uso afetados

  • Você importa skills de um caminho local ou de uma URL e as disponibiliza a agentes que podem configurar workspaces e iniciar serviços de runtime. Uma instrução maliciosa consegue usar essas permissões para executar comandos no host.

Confira na sua instância

Leia as skills importadas e procure instruções para alterar runtimeConfig ou iniciar runtime-services. Relacione essas instruções às alterações de workspace e aos registros de início dos serviços, conferindo qual comando o servidor executou. Examine saídas de rede inesperadas e acessos ao ambiente do processo, sem reproduzir comandos de extração de segredos.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
Paperclip (pacote não informado)<2026.416.02026.416.0

A API não informa nome de pacote nem ecossistema para esta ficha. A demonstração documenta extração de segredos, enquanto a execução de comandos também permite alterar arquivos acessíveis ao servidor.

Gravidade moderadaCVSS: 6,5/10Correção disponível

Leitura de arquivos do host pelo caminho de instruções do agente

O adaptador claude-local lê o arquivo indicado em adapterConfig.instructionsFilePath com fs.readFile. Como o agente pode alterar sua própria configuração e o caminho não fica restrito ao workspace, uma chave de agente permite direcionar a leitura para outro arquivo acessível ao processo do servidor. O conteúdo pode incluir um arquivo .env ou uma chave privada usada para acessar repositórios.

Casos de uso afetados

  • O seu agente usa o adaptador claude-local e carrega instruções de um arquivo no host. Arquivos sensíveis legíveis pelo processo do Paperclip ficam expostos quando a chave desse agente permite escolher um caminho fora do diretório autorizado.

Confira na sua instância

Você pode conferir instructionsFilePath na configuração do agente e comparar o caminho com o diretório destinado às instruções. Examine os logs do adaptador para localizar tentativas de leitura fora desse diretório, inclusive erros ENOENT com caminhos inesperados. Confira também as permissões de leitura do processo e a restrição de edição desse campo para chaves de agentes.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
paperclip (node.js application)<= v0.3.12026.416.0

A demonstração do comunicado usa um caminho inexistente e comprova a tentativa de leitura. O acesso a um arquivo existente depende das permissões do processo do servidor.

Gravidade moderadaCVSS: 4,3/10Correção disponível

Falsificação da autoria de aprovações e políticas de orçamento

As rotas de aprovação, rejeição e solicitação de revisão gravam decidedByUserId recebido no corpo da requisição, sem compará-lo com a identidade autenticada. Um membro com acesso à empresa consegue atribuir a ação a outro perfil. Na aprovação de hire_agent com orçamento mensal, esse identificador também preenche a autoria da política de orçamento, embora o activity_log preserve o autor verdadeiro.

Casos de uso afetados

  • Você usa o modo authenticated com vários membros na mesma empresa e consulta o histórico de aprovações para identificar o autor de uma autorização. A atribuição exibida pode divergir da sessão que executou a ação.
  • As aprovações de hire_agent com budgetMonthlyCents maior que zero também propagam a autoria falsa para createdByUserId e updatedByUserId da política de orçamento.

Confira na sua instância

Compare decidedByUserId das aprovações existentes com o userId registrado no activity_log para a mesma ação. Nas contratações de agentes com orçamento mensal, confira também createdByUserId e updatedByUserId em budget_policies. Revise os handlers de /approve, /reject e /request-revision para confirmar que a autoria vem da sessão autenticada.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
@paperclipai/server (npm)<= 2026.410.0-canary.1v2026.416.0

A falha altera a atribuição de autoria dentro de uma empresa já acessível ao atacante. O comunicado não descreve aumento de privilégios nem mudança no conteúdo da aprovação.

Voltar aos compilados de vulnerabilidades
Luiz Eduardo Oliveira Fonseca

Luiz Eduardo Oliveira Fonseca

Fundador e Mentor

Programador há mais de 20 anos, fundador da Powertic e da Promovaweb. Embaixador do n8n no Brasil e da Baserow, Chatwoot, Miro e Kestra. Membro do Product Team do Mautic.

Área pública disponível

Participe da comunidade no Discord

Entre pelo convite oficial, apresente-se à comunidade e acompanhe os avisos e projetos compartilhados entre os encontros.