Skip to content

0.2.1

Choose a tag to compare

@cursor cursor released this 18 Sep 17:33
· 370 commits to development since this release
1a5bc97

0.2.1 — CIRCL Vulnerability-Lookup for CVE

18 September 2026. Patch on the public 0.2.0 beta.

Install

pip install opentide==0.2.1
export OPENTIDE_REPO_ROOT=/path/to/detection-repo
opentide validate --strict

Added

  • CVE validation and generated threat CVE tables use CIRCL Vulnerability-Lookup instead of scraping NVD through mitrecve (#109).
  • opentide validate --check cve looks up CVE, GHSA, and GCVE identifiers (GET /api/vulnerability/{id}). Empty JSON means unknown. GNA 0 GCVE ids (GCVE-0-YEAR-N) map to the reserved CVE key.
  • Generated threat docs link to https://vulnerability.circl.lu/vuln/{id} and can enrich published date, severity, and aliases when [cve].retrieve_details is true.
  • threat.cve is a first-class optional list on the threat body.

Changed

  • Bundled documentation.toml [cve] defaults to Vulnerability-Lookup. Legacy NVD default_db_link values are remapped.
  • The CVE check stays opt-in (--check cve) so default opentide validate stays offline.

Verify

python -c "import opentide; print(opentide.__version__)"
opentide setup --yes --name "Tutorial Detections" --org "Example Corp" --platform sentinel --path /tmp/tutorial-detections
opentide --repo /tmp/tutorial-detections generate
opentide --repo /tmp/tutorial-detections validate --strict
opentide --repo /tmp/tutorial-detections validate --check cve

Expect 0.2.1. .opentide/templates/threat.1.0.template.yaml must contain #cve:. CVE lookup is network-backed; identifiers that CIRCL does not know fail the opt-in check. Default opentide validate (no --check cve) must not contact Vulnerability-Lookup.

Links

License: EUPL-1.2. Issues: OpenTideHQ/opentide.