cve-watch
Matcher local de CVEs: cruza inventário de software com base local de vulnerabilidades (offline).
6 testes · 6 passou · 0 falhou · 0 skip
- test_match_encontra_vulneravel0.00s
- test_match_ignora_versao_nao_afetada0.00s
- test_match_sem_achados0.00s
- test_match_intervalo_versao0.00s
- test_match_fora_do_intervalo0.00s
- test_match_filtro_severidade0.00s
Entrypoints (CLI)
cve-watch
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
- LICENSE
- README.md
- examples/cves.json
- examples/inventory.json
- pyproject.toml
- src/cve_watch.egg-info/PKG-INFO
- src/cve_watch.egg-info/SOURCES.txt
- src/cve_watch.egg-info/dependency_links.txt
- src/cve_watch.egg-info/entry_points.txt
- src/cve_watch.egg-info/top_level.txt
- src/cve_watch/__init__.py
- src/cve_watch/cli.py
- src/cve_watch/core.py
- tests/test_core.py
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).
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