Você lê o contrato antes de fazer o deploy. Leia a skill antes de instalar também. Um arquivo de configuração instalado com uma linha pode abrir um shell, ler o seu cofre de credenciais e mandar tudo para algum lugar — e nada disso aparece num README renderizado.
Os casos em que o perigo não está num juízo sobre a intenção de alguém, e sim no formato da configuração. Seis classes, 21 regras.
Um shell como comando MCP. Um download canalizado direto para o shell. Remoções recursivas a partir da raiz / ou de ~. Sandboxes e pedidos de permissão desligados por flag. Executáveis chamados de diretórios temporários em que qualquer coisa na máquina pode reescrever.
Chaves de API vivas e material de chave privada escritos num arquivo que é compartilhado e instalado. Instruções que apontam o agente para ~/.ssh, ~/.aws ou um arquivo .env — que, ao lado de qualquer capacidade de saída, formam um caminho completo de vazamento.
Endpoints de coletor descartável. Webhooks de chat carregados dentro de uma configuração — que são permissões de escrita dentro de uma URL. Instruções para enviar conteúdo de arquivo, variáveis de ambiente ou a conversa para um endereço remoto.
Sobrescritas de instrução. Reatribuições de identidade. Ordens escondidas em comentários HTML — invisíveis na visualização renderizada, completamente visíveis para o modelo. Caracteres de largura zero e de mudança de direção, de modo que o que o revisor lê e o que o modelo recebe sejam dois documentos distintos.
Permissões de comando com curinga — o ponto em que a lista de permissões deixa de ser uma lista de permissões. Instruções mandando o agente agir sem pedir aprovação, que é exatamente a condição necessária para uma instrução injetada funcionar.
Pacotes sem versão fixa, instalados e executados a cada inicialização. Código puxado de um branch em vez de um commit — para que o conteúdo revisado e o conteúdo executado possam se separar por um push de distância.
As ferramentas em si (o scanner, os painéis, o espaço de trabalho da SAFI) funcionam por enquanto com a interface em inglês. Estas páginas explicam tudo em português antes de você entrar nelas.
É preciso dizer isso antes de qualquer coisa, porque os dois vivem no mesmo site e o print de um não deve ser confundido com o outro.
Quer dizer que nenhum destes padrões foi encontrado. NÃO quer dizer que é seguro executar o arquivo. Uma skill pode ser hostil sem casar com nada conhecido. Leia o que você instala.
O motor de Solidity roda 201 detectores sobre uma linguagem que tem especificação e sistema de tipos; ali, «esta função move dinheiro e qualquer um pode chamá-la» é uma propriedade decidível. Ele produz uma nota.
O scanner daqui são 21 regras que casam padrões em texto puro e JSON. O que torna uma skill perigosa é a intenção, e intenção não é decidível. Por isso ele produz passou / aviso / reprovou e, deliberadamente, não produz nota.
O texto é lido, casado e descartado. Não há uma linha, um cache ou um registro que o carregue.
Aqui, até 128 KB. O nome do arquivo determina quais regras rodam — as regras específicas de configuração não disparam em texto puro que apenas cita aqueles padrões.
Esta página lê um arquivo por vez. As mesmas regras existem na ferramenta de linha de comando: ela percorre um diretório, não pede chave de API e não manda nada para lugar nenhum — npx saferico skill ./minha-skill
As mesmas regras também são oferecidas pela ferramenta MCP chamada scan_agent_config, para que a checagem aconteça antes de algo ser instalado, e não depois.
Cole o endereço do contrato e veja as permissões do proprietário, a liquidez e o resultado da simulação de venda antes de se expor. A pequena taxa por escaneamento aparece antes da assinatura — e em qualquer assinatura ela já vem incluída, sem limite.