Skip to content
Reference
Skip navigation
Reference

Changelog

Notable changes to WhisperGraph docs, API, MCP server, and Splunk integration.

Published

View as Markdown
On this page (5)

Changelog Documentation

A running log of what's new on the public WhisperGraph — new data layers, query capabilities, and agent tools. Everything listed here is live and reproducible at graph.whisper.security. Changes to the MCP connector's own contract — tools, resources, prompts and response fields — are logged separately on the connector changelog.

Key concepts: Certificate Transparency, RPKI / Route Origin Authorization, MITRE ATT&CK.

August 2026

  • Vulnerability plane. whisper.cve.byPackage() returns the known CVEs for a CPE 2.3 package spec — band, KEV status, ransomware use, EPSS and CVSS — and whisper.vulnPosture() rolls exposure up into one row for a CVE list, a package spec or an ASN. explain() and whisper.assess() accept CVE ids and file hashes, and known-good hashes are clamped to informational. See Procedures.
  • Bulk export. whisper.export({label, limit, cursor}) pages through a whole verdict tier — malicious, ambiguous — coverage: ambiguous. In coverage, and the evidence points both ways. or benign-allowlisted — with an opaque continuation cursor. See Exporting at volume.
  • Batch enrichment. whisper.enrich() returns owner, country, ASN, band and prevalence for a list of hosts or IPs in one call.
  • Subdomain-takeover check. whisper.danglingCname() returns CNAME targets whose apex is unregistered.
  • Phishing-kit paths. URL paths that kits reuse are URL nodes joined to the hosts that serve them by LINKS_TO and ranked by how rare each path is across the graph, so a kit can be expanded to its member hosts and clustered across apexes.
  • Registrant handles in the graph. Prefixes and ASNs link to their RDAP registrant entities through REGISTERED_TO_ENTITY.
  • Routing security signals. A ROA that covers a more-specific block now links to it; ASNs carry hijack-posture and route-leak signals; peering edges (BGP_NEIGHBOR) carry the relationship class between the two networks (relClass) and their provenance. New curated signals name bulletproof-hosting, critical-infrastructure, satellite and declining networks, and wildcard-DNS hosts.
  • Actor aliases and malware context. ACTOR.aliases holds the vendor names an actor is known by, and an indicator's MISP tag links onward to the named actor.
  • Computed edges in paths. Query-time edges such as ROUTES, BGP_NEIGHBOR and LISTED_IN now work inside [*1..N] and shortestPath() patterns when one endpoint is anchored.
  • One company, one node. SAME_ORG_AS folds a raw WHOIS registrant string to the company it actually is, so a portfolio view no longer splits one owner into several spellings, and organization display names answer STARTS WITH lookups.
  • Errors are RFC 7807. Every error body is application/problem+json with a stable type URI, title, status, detail and instance, and query errors carry suggestions[] with a runnable rewrite where one exists. See Errors.
  • Band-consistent verdictScore. explain() and whisper.assess() return a verdictScore that always agrees with the band, and explain() now scores networks and ASNs as aggregates over the range.

July 2026

  • Path-scoped verdicts. whisper.assessUrl() scores a full URL, so a malicious path on an otherwise clean apex is caught, and whisper.assess() accepts a single host as well as a list. See whisper.assessUrl().
  • Response advisories. A successful response can carry an advisories[] channel — non-fatal notices such as a null pagination parameter, a WHOIS parent fold or an omitted verdict projection — so a caveat is a field rather than a guess. See POST /api/query.
  • Forgiving input. Labels from other graph products (Domain, IpAddress, Certificate) are corrected or answered with a clear error naming the replacement; procedures accept a URL and fold it to its host; whisper.version() reports the engine version.
  • New procedures. whisper.resolve() returns a host's A and AAAA records; whisper.asnCountries() and whisper.asnThreatDensity() profile networks; whisper.search() also matches network names; whisper.identify() attributes a bare IP through its netblock or BGP origin.
  • Indicator attribution. TAGGED_AS and ATTRIBUTED_TO link indicators to MISP tags and named actors, traversable from the actor side as well, and BGP_PATH links an observed AS path to each network on it.
  • Route-origin validation on prefixes. rpkiStatus, roaAsn and roaMaxLength on announced prefixes, prefix on ROA nodes, and per-edge provenance (source, observed_at, inferred) on inferred physical-infrastructure edges.
  • Egress risk and popularity. Hosts and IPs carry isEgressRisk and egressClasses; hostnames carry a popularity rank; a first-class scam category joins the taxonomy; and feed sources expose isThreat, isPopularity and category, so a popularity list never reads as a threat list.
  • whisper.origins confidence is a probability. confidence is a value between 0 and 1 rather than an integer weight, and CDN or shared-provider addresses are excluded unless you pass {include_related: true}. See whisper.origins().
  • Layer coverage in the statistics. GET /api/query/stats reports each query-time layer's coverage (OK / DEGRADED / EMPTY) and last refresh, so a thin layer is visible before you trust a result.
  • Reverse feed enumeration. List everything a feed lists by traversing LISTED_IN from an anchored feed, and walk from a country to a bounded sample of its addresses.

June 2026

  • Reconciled threat verdict. Every threat-listed indicator now returns a single, blocking-aware verdict — verdictScore, verdictLevel, and verdictBlocking — alongside the raw feed signals, so triage is one read instead of a judgement call. See Graph Schema → Node properties.
  • TLS fingerprints, Tor-exit identity, and vendor egress. Pivot on JA3/JARM TLS fingerprints, attribute Tor exit relays to the IPs that operate them, and see which cloud or SaaS vendor operates a netblock.
  • Certificate Transparency. Discover subdomains and SANs observed in CT logs.
  • Agent tools for AI Context (MCP). The host-identity set — identify (whose infrastructure a host is), assess (a coverage-qualified verdict), and walk (structural neighborhood) — plus CDN-origin de-cloaking with whisper.origins(). See the Procedure Reference.
  • Bounded analyst search. whisper.search() resolves an untyped token — IP, host, ASN, CIDR, prefix or suffix — without an unanchored scan.

May 2026

  • Physical-infrastructure layer. Data-center facilities, internet exchanges, submarine cables and their landing points, CDN points of presence, and cloud regions — the physical internet, joined to routing.
  • RPKI ROA coverage. Check whether a prefix's origin AS is authorized by a published Route Origin Authorization.
  • Threat-actor → MITRE ATT&CK mapping. Named actors linked to the techniques they use.
  • BGP path & adjacency graph. AS-path observations and a single canonical ASN-to-ASN adjacency edge.
  • Typosquat / lookalike generation. whisper.variants (and the domain_variants agent tool) generate registered lookalikes across 14+ mutation methods.

March 2026

  • RDAP registration data. Registrant entities ingested from regional-registry WHOIS/RDAP.

Counts and capabilities are always live — GET /api/query/stats reports current totals.