| Versão | Suporte de Segurança |
|---|---|
| Latest (main) | ✅ Ativa |
| < 1.0 | ❌ Não suportado |
Apenas a branch principal (main) recebe atualizações de segurança.
Não abra issues públicas para vulnerabilidades de segurança.
Envie um email para security@kb-project.dev ou abra uma GitHub Security Advisory com:
- Descrição da vulnerabilidade
- Passos para reproduzir (PoC se possível)
- Impacto estimado
- Versão afetada
Você receberá uma resposta em até 72 horas.
O projeto usa defusedxml para parsing de arquivos EPUB, prevenindo:
- XML External Entity (XXE) attacks
- Billion Laughs / XML bomb attacks
- Entity expansion attacks
O cliente LLM valida o modelo solicitado contra a lista de modelos disponíveis na API OpenCode Go, prevenindo:
- Model injection
- Uso de modelos não autorizados
- Custos inesperados
- O LLM nunca executa código — apenas gera e edita arquivos Markdown
- Não há
exec(),eval()ousubprocesscom input do LLM - O código Python do projeto é estático e auditável
Todos os caminhos de arquivo são sanitizados antes de uso:
- Remoção de path traversal (
../,..\\) - Restrição ao diretório de trabalho do projeto
- Validação de caracteres permitidos
- API key exclusivamente via arquivo
.env - Nunca hardcoded no código
- Nunca committed ao repositório
.envestá no.gitignore
defusedxml>=0.7 # XML parsing seguro
typer>=0.12 # CLI framework
rich>=13.0.0 # Terminal UI
python-dotenv>=1.0.0 # Env file loading
openai>=1.0.0 # LLM client (opcional)
pip install safety
safety check- Mantenha o
.envseguro — não compartilhe, não commit - Use a API key com permissões mínimas — apenas para leitura/escrita necessária
- Revogue a key se suspeitar de vazamento
- Não execute
kbcom sudo/root — rode com permissões de usuário normal - Mantenha as dependências atualizadas:
pip install -e . --upgrade - Audite o código antes de rodar — o projeto é pequeno e legível
- Não ingestione arquivos de fontes não confiáveis sem inspeção manual
- Use
--allow-sensitiveapenas com consciência — essa flag autoriza explicitamente o envio do conteúdo sinalizado ao provider externo - Use
--no-commitem experimentos ou material sensível quando quiser persistir localmente sem gravar histórico git imediato
- O kb não valida o conteúdo semântico dos documentos processados
- Documentos maliciosos em
raw/podem conter payloads (mas o kb não os executa) - A sanitização foca em paths e XML — não em conteúdo markdown gerado
- Flags como
--allow-sensitivereduzem a proteção operacional por execução; devem ser usadas apenas quando o usuário entende o risco
- A API OpenCode Go está fora do controle deste projeto
- Vulnerabilidades nas dependências Python devem ser reportadas aos respectivos projetos
- O kb é uma ferramenta local — não expõe serviços de rede
- O vetor de ataque principal é via arquivos de entrada maliciosos
- Não há proteção contra DoS por arquivos extremamente grandes (limitado por memória disponível)
Esta política é revisada a cada release. Última atualização: 2026-04-04.