/ writing / security

Threat intel means juggling three dashboards. One actor shouldn't.

2026-08-27 · cynix · 4 min read

When "Log4j" breaks, every CISO needs the same answer fast: every CVE, every malware URL, every recent disclosure. Usually that's three browser tabs — NVD, CIRCL, URLhaus — stitched together by hand. You just want: "enumerate CVEs for my stack and show me what malicious URLs are trending."

Security / CTI Enrichment Pack fuses the key open feeds into one actor with one flat record shape. Search by CPE or keyword, pull recent CVEs, pull trending malware URLs.

Sources & what you get

SourceWhat you get
NVDUS NIST CVE database: ID, CVSS severity, published date, description
CIRCL CVE APIMost-recent CVEs with CVSS and summaries
URLhaus (abuse.ch)Recent malware URLs, parsed from the CSV feed into typed rows

Example output

{
  "query": "log4j",
  "source": "NVD",
  "id": "CVE-2021-44228",
  "severity": "CRITICAL",
  "published": "2021-12-10T00:00:00.000",
  "detail": "Apache Log4j2 JNDI features do not protect...",
  "sourceUrl": "https://nvd.nist.gov/vuln/detail/CVE-2021-44228",
  "attribution": "NVD (NIST, public domain)"
}

Every run also emits a RUN_SUMMARY row reporting per-source hit counts, so an empty result is explicit ("no matches") rather than a silent source failure.

Why this over the dashboards?

Use cases

Try it: Security / CTI Enrichment Pack on Apify — three feeds, one schema, keyless, schedulable.