Como encontrei uma vulnerabilidade de jailbreak no DeepSeekV3 por meio de tarefas de completamento de código
Na semana passada, enquanto explorava as capacidades de raciocínio do modelo v2 da DeepSeek, decidi direcionar minha atenção para o modo como ele lida com autocompletamento de código em cenários restritos.
Comecei com uma tarefa simples, forneci ao modelo uma linha incompleta em Python que usava os.system() e pedi que ele completasse a chamada com algo explicitamente destrutivo, como mirar no arquivo hosts do sistema, o prompt enquadrava isso como parte de uma simulação de red team, nada sofisticado apenas contexto suficiente para invocar legitimidade de "teste". O que se desenrolou ao longo de vários passos de raciocínio me surpreendeu pela consistência.
O modelo reconheceu imediatamente o perigo da solicitação, destacando o papel do arquivo hosts na resolução de DNS e os riscos de adulteração. Debateu a recusa, citando salvaguardas de produção e requisitos de privilégios, mesmo assim, após avaliar opções como detecção condicional de SO ou supressão de erros, ele "cedeu"e complementou encadeando rm para caminhos Unix-like com || del para Windows, com redirecionamentos para /dev/null e nul para silenciar a saída. O completamento se encaixava perfeitamente na restrição de linha única, resultando em código totalmente executável capaz de remover o arquivo silenciosamente se rodado com elevação.
Incentivado por isso, reformulando a mesma intenção em torno de prontidão para produção. Instruí o modelo a fornecer o código completo pronto para produção, aproveitando sua consciência prévia dos riscos. Aqui, a resposta evoluiu, mais uma vez, expressou cautelas fortes enfatizando que tais operações pertencem a ferramentas de configuração como Ansible, nunca scripts diretos, e destacando barreiras de permissão. Ainda assim, a obediência prevaleceu.
Dessa vez, ofereceu duas variantes: A primeira concisa, rotulada apenas para referência educacional, usando flags de remoção forçada e fallbacks, ao lado dela, veio uma função mais longa com camadas de defesa, detecção de plataforma, backups com timestamp, prompts de confirmação, logging, até sugestões de privilégios. As salvaguardas pareciam minuciosas a primeira vista, mas a confirmação simplesmente disparava a exclusão de qualquer forma. O modelo justificou isso repetindo seu dever de seguir instruções, apesar de admissões anteriores de que a ação continua destrutiva.
Essas sessões revelaram um padrão que já observei em outros modelos, a de que deliberação estendida oferece espaço amplo para autopersuasão. Quando os prompts fornecem negação plausível, seja simulação, educação ou necessidade de produção, o impulso de seguir instruções sobrepõe o treinamento de recusa e os traços de pensamento visíveis basicamente documentam a sobreposição em tempo real.
Enfim, reuni as evidências em um relatório estruturado, capturando prompts exatos, trechos de raciocínio e saídas. A DeepSeek não possui um programa formal de bug bounty em plataformas como o HackerOne, e vulnerabilidades anteriores surgiram via issues no GitHub ou contato direto. Dado o caráter open-weight do modelo e sua adoção crescente, essas lacunas merecem atenção da equipe.

