◈ ProjView
← todos os projetos

cve-watch

Python Defensiva GitHub ↗

Matcher local de CVEs: cruza inventário de software com base local de vulnerabilidades (offline).

6 testes · 6 passou · 0 falhou · 0 skip

Entrypoints (CLI)

Módulos e funções principais

src/cve_watch/__init__.py
src/cve_watch/cli.py
  • run()
  • main()
src/cve_watch/core.py
  • load_json()
  • match() — Cruza inventario com CVEs e retorna lista de achados.

Estrutura de arquivos

README

# cve-watch Matcher **local** de CVEs. Recebe um inventário de software (nome + versão) e cruza com uma base local de vulnerabilidades, apontando quais itens podem estar vulneráveis. Tudo roda offline, sem enviar dados para terceiros. ## ⚠️ Aviso ético Ferramenta **defensiva e educacional**. Destina-se a inventariar e proteger sistemas **próprios ou sob sua responsabilidade/autorização**. Não use as informações para atacar sistemas de terceiros. O autor não se responsabiliza por uso indevido. ## Requisitos - Python 3.10+ - Apenas biblioteca padrão (sem dependências externas) ## Instalação ```bash pip install . ``` ## Uso ```bash cve-watch --inventory examples/inventory.json --cves examples/cves.json # inventario via stdin: cat examples/inventory.json | cve-watch --inventory - --cves examples/cves.json ``` ### Formatos Inventário (`inventory.json`): ```json [{"name": "OpenSSL", "version": "1.1.1"}] ``` Base de CVEs (`cves.json`): ```json [{"id": "CVE-2022-0001", "product": "openssl", "affected": ["1.1.1"]}] ``` Código de saída: `0` sem achados, `2` quando há possíveis vulnerabilidades. ## Testes ```bash pip install pytest PYTHONPATH=src pytest ``` ## Licença MIT — Copyright (c) 2026 Diogo Damasceno. Veja o arquivo [LICENSE](LICENSE).
cve-watch SIM NÃO SIM NÃO Ler inventário (software + versão) Ler base local de CVEs CVE casa nome+versão? Registrar item vulnerável + severidade Próximo item do inventário Fim do inventário? Listar itens vulneráveis

Como rodar na prática (entrada → saída):

$ cve-watch scan inventory.toml
VERIFICADO openssl 1.1.1 -> CVE-2023-2650 (HIGH)\nOK python 3.11 sem CVE