Este documento descreve como reportar vulnerabilidades de segurança e como o projeto as trata.
| Versão | Suporte de Segurança |
|---|---|
1.0.1 |
✅ Ativa - patches enviados assim que possível |
1.0.0 |
|
| Forks, distribuições não oficiais, versões modificadas | ❌ Fora do escopo deste repositório |
⚠️ Não abra issues públicas para vulnerabilidades de segurança.
Issues públicas expõem usuários antes que haja uma correção disponível.
Use o GitHub Private Security Advisories:
- Acesse Security → Advisories
- Clique em "Report a vulnerability"
- Preencha o formulário - a conversa fica privada entre você e o maintainer
Contato direto pelos links no perfil @KillovSky.
| Campo | Descrição |
|---|---|
| Descrição | Qual é a vulnerabilidade e como ela funciona |
| Impacto | O que um atacante pode fazer com ela |
| Passos de reprodução | Sequência mínima e reproduzível |
| Versão afetada | Versão do Codis e do Python |
| Prova de conceito | Código, script ou screenshot (se possível) |
| Correção sugerida | Opcional, mas muito bem-vinda |
- Execução de código arbitrário via plugins sem confirmação do usuário
- Exfiltração de dados - credentials, tokens, chaves de API armazenadas
- Corrupção de arquivos do usuário causada por bug no editor
- Path traversal / directory traversal em operações de arquivo
- Bypass do sistema de confiança de plugins (
trusted_plugins.json) - Injeção de comandos via inputs do usuário que chegam a
subprocess - Credenciais Git expostas em logs, estado compartilhado ou transmissões inseguras
- XSS ou injeção no render de Markdown/HTML interno
- Credenciais de banco de dados expostas via SQL Studio
- Bugs funcionais sem impacto de segurança → Issue normal
- Vulnerabilidades em dependências externas → reporte diretamente a elas
- Problemas em forks e distribuições de terceiros
- Vulnerabilidades que exigem acesso físico ao dispositivo do usuário
- Ataques de engenharia social fora do código
| Etapa | Prazo estimado |
|---|---|
| Confirmação de recebimento | ~1 semana |
| Avaliação inicial de severidade | ~5 dias após confirmação |
| Desenvolvimento de correção | Depende da complexidade |
| Lançamento do patch | Após validação |
| Publicação do advisory | Após o patch estar disponível |
O projeto é mantido por uma única pessoa no tempo livre disponível. Os prazos são estimativas de boa-fé.
O Codis executa código Python de plugins instalados pelo usuário. Isso é intencional - plugins são extensões Python nativas com acesso ao processo.
- Análise estática na instalação - o
PluginLoaderexecuta análise AST de importações e chamadas suspeitas antes de ativar um plugin novo - Sistema de confiança -
trusted_plugins.jsonregistra plugins verificados; plugins não listados passam por confirmação do usuário antes de carregar - Sandboxing de API - a
PluginAPIexpõe apenas as interfaces necessárias; plugins não têm acesso direto aConfigManager, credenciais Git ou providers de IA por padrão - Escrita atômica - saves usam
tmp + rename; plugins não podem corromper arquivos via race condition na API exposta
- Senhas de conexão são armazenadas com codificação base64 em
~/.codis/sql_connections.json- proteção básica contra exposição acidental em logs, não criptografia robusta - Conexões SQLite usam
check_same_thread=Falsecom lock explícito para serialização de acesso concorrente - Credenciais nunca aparecem em logs ou na interface
O sistema de confiança de plugins não é uma sandbox completa. Um plugin Python malicioso com permissão do usuário pode fazer qualquer coisa que Python pode fazer. Instale apenas plugins de fontes confiáveis.
Veja wiki/plugins.md para detalhes sobre o modelo de segurança e as APIs disponíveis.
Pesquisadores que reportarem vulnerabilidades válidas de forma responsável serão creditados nas notas de release (com permissão) como Security Researchers.