search_vulns
Search the CVE corpus — one entry point, three retrieval modes picked from your arguments:
- query= a concept / technique / weakness (e.g. "SSO SAML assertion replay",
"deserialization gadget chain", "server-side request forgery cloud metadata").
By default it FUSES full-text keyword search AND semantic mechanism-search, so you
don't have to guess whether your phrasing is lexical or conceptual. order='relevance'
= keyword only; order='similarity' = semantic only; order='severity' = fuse then
rank P1>P4.
- cve_id= a seed CVE (e.g. "CVE-2021-44228") -> its mechanism-siblings across OTHER products
(the "what else looks like this?" move).
- days= and/or product= (with NO query) -> the recent high-risk window (KEV / P1-P2 /
high-EPSS); product= is CPE-name-resolved and each hit carries match.products.
Returns ranked cards (each with priority/KEV/EPSS/CWE) + total_matches for coverage; the
'mode' field reports which retrieval ran. You decide which matches matter.
(For a specific product's version-resolved vulns use hunt_plan; for how bugs like this were
FOUND in disclosed reports use find_attack_approaches.)
Args:
query: free-text concept / keyword / CWE.
cve_id: seed CVE for semantic mechanism-sibling search.
cwe: optional weakness filter, e.g. "CWE-502" or "502".
days: recency filter on publication date.
product: product filter for the recent-window mode (CPE-name-resolved, carries provenance).
order: relevance | similarity | severity (default: fused when query is text).
limit: max results.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cwe | No | ||
| days | No | ||
| limit | No | ||
| order | No | ||
| query | No | ||
| cve_id | No | ||
| product | No |