Skip to content

Help

What ExploitSignal is, the terminology, and how every page and feature works.

ExploitSignal is a dashboard that helps you keep track of software security flaws, the bugs attackers use to break into systems. It gathers public information about these flaws from many places, tidies it into one record per flaw, scores how dangerous each one is, and lets you sort, search, and act on what matters most.

This guide assumes no prior security experience. Every term is explained where it first matters.

On this page

What is ExploitSignal?

Top

When researchers and vendors disclose a software security flaw, it gets a public ID called a CVE. Hundreds of thousands exist, and dozens of separate sites and feeds track different details about each one. ExploitSignal does that tracking for you and gives every flaw a single risk score from 0 to 100.

Read-only intelligence

ExploitSignal never touches your systems. Use it to decide what to patch first, to watch the products you care about, and to hand findings to your team or ticketing system.

A score of 100 is about the flaw

It says a flaw is dangerous in the world: ExploitSignal does not know what software you run.

Make it about you

Use watchlists to tell it what you run, and the ranking becomes about you.

How it works, in one minute

Top

Five things happen on a loop.

  1. 1

    Collect

    Data is fetched from 22 public sources (see Where the data comes from).
  2. 2

    Merge

    All the details about one flaw become a single record that tracks which source said what.
  3. 3

    Enrich

    Extra signals are added: a known-exploited listing, attacks seen in the wild, trending security discussion.
  4. 4

    Score & rank

    Each flaw gets a risk score and priority, so one sort puts the most dangerous first.
  5. 5

    Act

    You browse and filter; with a free account you triage, tag, watch, and get alerts.

Getting started

Top
  1. 1

    Open the Dashboard

    See the current landscape.
  2. It opens sorted by what changed most recently; click the Risk column to rank by danger instead.
  3. 3

    Filter or search

    Use the filters, or press Ctrl/⌘ + K.
  4. Triage flaws, add notes and tags, build watchlists and bundles, and get alerts. If this deployment is not accepting new accounts, ask the operator for one.

Accounts & who can see what

Top

A deployment runs either open to the public or private to the people who can already reach it. On a public one, everything marked "Sign-in required" is hidden until you sign in; on a private one, most of it is simply there. The API page needs an account either way.

Anyone

No account needed
No account. Read all the shared intelligence: dashboard, vulnerabilities, advisories, intel, the report trend charts, and this help. On a deployment open to the public, the archive of saved reports needs an account.

Registered user

Sign-in required
A free account. Everything above, plus a private workspace: triage, notes, tags, bundles, watchlists, and personal alerts & automation. Nobody else sees your workspace.

A program, with your key

Sign-in required
A script or another tool, holding an API key you created. It acts as you and can never do more than you can. See Using the API.

Signing in

Sign in and the extra pages appear in the left menu. If this deployment is open to the public and accepting new accounts, the Sign in page offers Create an account; if it is not, your account has to come from the operator. Too many failed sign-ins pause further attempts for a delay that doubles each time, up to 30 minutes, so wait rather than retry.

Key terms, explained simply

Top
CVE
A public ID for one specific software flaw, like CVE-2021-44228.
Vulnerability
Another word for a security flaw, a weakness attackers can abuse. Each CVE describes one vulnerability.
CVSS score
A 0-10 rating of how severe a flaw is in theory (10 = worst). It measures potential impact, not whether anyone is attacking it.
EPSS
A 0-100% prediction of how likely a flaw is to be exploited in the next 30 days.
KEV (Known Exploited)
A flaw that the U.S. cyber agency (CISA) has confirmed is actually being used in real attacks. Patch these first.
Exploit maturity
How ready-to-use an attack is: from just "referenced", to a public proof-of-concept, to weaponized, to KEV-listed.
In the wild
Threat sensors are seeing real attackers or automated bots try to exploit the flaw right now.
Ransomware-linked
The flaw is known to be used by ransomware gangs, criminals who lock up your files for payment.
CWE / CAPEC / ATT&CK
Catalogs that classify the type of weakness (CWE), the attack pattern (CAPEC), and the attacker technique (MITRE ATT&CK).
SSVC
A decision aid from CISA that labels a flaw's exploitation status and whether an attack can be automated.
Advisory
A vendor or project's official write-up of a flaw (for example a GitHub or open-source-package advisory), often with the affected versions and the fix.
Risk score & priority
ExploitSignal's own 0-100 score combining all the signals above into one number, plus a Critical/High/Medium/Low label. See How the risk score works. In the list, Severity and Priority are separate columns that use the same four words: Severity comes from CVSS alone, Priority from the risk score, so a flaw can read High in one and Medium in the other.
Webhook
A URL you own that ExploitSignal calls when something happens, with the details in the message, so another tool can react without anybody reading an email.
VEX
A vendor's own statement about whether a flaw actually affects their product, which is often "not affected" even when a scanner flags the component.
Triage
Your decision about a flaw: one of new, reviewing, watching or dismissed. You can attach a reason and an expiry date, and a watching or dismissed flaw returns to new when that date passes.

Every page, one by one

Top

The left-hand menu, in order.

Open to everyone

Dashboard

No account needed
Counts of tracked, known-exploited and ransomware-linked flaws, trend charts over the last month, and a five-tab Boards card (Latest, Latest high, Trending, Trended #1, Today's critical). A Rising EPSS panel, a since-your-last-visit digest and a Security news card sit alongside.

Vulnerabilities

No account needed
The full, searchable list of every flaw, newest changes first and sortable by any column including risk. Filter by severity, priority, KEV, EPSS, how ready an attack is, whether a fix exists, and more. A filter you arrive with from Intel shows as a chip you can click to remove. Save a filter set as a named view; views live in this browser, not in your account, so they do not follow you to another device, and any you saved before signing in stay with the signed-out session. Click a CVE id for its full detail page. Signed in, tick rows to triage them or file them into a case file in bulk; a single flaw's triage, notes and tags live on its own page.

Advisories

No account needed
Security advisories from open-source ecosystems (npm, PyPI, etc.) and vendors, linked back to their CVEs, with affected and fixed versions.

Intel

No account needed
Seven aggregated views: a report card per vendor, top weakness classes, top attack techniques, impact types, the latest exploits, and the flaws whose EPSS or risk score moved most. Click any vendor, weakness type, attack technique or impact type to jump to the matching flaws in the Vulnerabilities list.

Reports

No account needed
Threat-landscape trend charts. The archive underneath needs an account and holds two documents, both written every Monday: a shared one covering the whole corpus, and yours, covering what matched your watchlists, which of your past triage decisions the week overturned, and what is sitting past its SLA window. Generate now, above the archive, builds yours on demand, up to ten a day; only the operator can publish the shared one.

Help & Guide

No account needed
This page, at the bottom of the menu.

Once you are signed in

Watchlists

Sign-in required
Track the vendors, products, packages, whole package ecosystems, weakness types, or search terms you care about, and see matching flaws in one place. New matches can trigger alerts.

Bundles

Sign-in required
Group related flaws into a named "case file". Open in list shows the whole bundle in the Vulnerabilities page, where you can sort it or export it in one go.

Data Health

Sign-in required
Status of every data source: last successful sync, failures, and processing backlog. It also reports the nightly database backup as healthy, failing, or not reporting at all.

API

Sign-in required
Driving ExploitSignal from a program: your keys, the shape of what comes back, the endpoint reference, and the ServiceNow connection. See Using the API and Connecting ServiceNow.

Settings

Sign-in required
Your personal preferences: notification channels, triage deadlines, your password, and a fuller theme picker. Automation rules have their own tab here.

What one flaw's page tells you

Top

The whole record on one page. Most of it is readable without an account.

Why this score

No account needed
Every factor that contributed, with its points. See How the risk score works.

CVSS, decoded

No account needed
The severity vector spelled out: attack vector, complexity, privileges, user interaction, scope, impact. It answers whether anyone can reach this over the network without logging in.

Sources disagree

No account needed
The value in use, which source it came from, and every value that was rejected. Read it when a vendor quotes you a different severity than the one on screen.

Signal coverage

No account needed
Which sources have reported on this flaw, and when. A row reading "nothing reported" means that source has contributed nothing here, not that it looked and found nothing. Read a quiet panel as missing coverage, never as an all-clear.

Exploitation timeline

No account needed
When the flaw was disclosed, when a proof-of-concept appeared, when it was weaponized, when it reached the KEV list, and how many days each took.

In the news

No account needed
Headlines from the security press and advisory feeds that mention this CVE by name, linked back to the original article.

Jump to related flaws

No account needed
Vendor, product, weakness type, attack technique and data source are clickable: each filters the main list to everything else like it.

Case files

Sign-in required
Add the flaw to one of your case files, and see which ones already contain it.

Take it elsewhere

No account needed
Copy the id or a paste-ready summary for a ticket. Exporting the single flaw as CSV, STIX or MISP needs a free account.

Features & what needs an account

Top

Search & filter

No account needed
Filters and a command palette (Ctrl/⌘ + K) across every flaw and advisory. The filters live in the URL, so a view can be shared as a link.

Exports

Sign-in required
Download what the current filters show as a spreadsheet (CSV), or in the two standard formats security tools read (STIX and MISP). A whole bundle exports in one go.

Light or dark

No account needed
The sun icon in the top bar switches between two dark themes and a high-contrast light one. The choice is remembered in this browser.

Triage, notes & tags

Sign-in required
Mark where each flaw stands, jot private notes, and label flaws with your own tags.

Watchlists & bundles

Sign-in required
Follow the products you run; group flaws into case files.

Notifications

Sign-in required
Alerts by webhook, Slack, or email: a new KEV, a watchlist hit, a weekly digest. An email channel can only be addressed to your own account address. A webhook or Slack URL has to be https and reachable from the public internet; only the operator can point one at an address inside your network.

Automation rules

Sign-in required
"When a flaw matches these conditions, auto-tag / set triage / add to a bundle / notify." It fires on its own as flaws arrive and change.

ServiceNow

Sign-in required
Push qualifying flaws into your ServiceNow instance as records, and optionally let it send each record's status back, so closing a ticket there updates your triage here. See Connecting ServiceNow.

How the risk score works

Top

ExploitSignal blends many signals into a single risk score from 0 to 100 and a priority label (Critical / High / Medium / Low).

The formula

risk score = min(100, sum of every factor that applies)

Priority bands

90 and above is Critical, 70-89 is High, 40-69 is Medium, and below 40 is Low.

How the groups combine

A group marked highest match only scores just its top matching row. Everything else adds together.

The factors

Severity (CVSS)highest match only
CVSS 9.0 and above+35
CVSS 7.0-8.9+25
CVSS 4.0-6.9+10
CVSS below 4.0+5
Exploit prediction (EPSS)score bands and percentile bands: highest of each
EPSS 0.90 and above+30
EPSS 0.50-0.89+20
EPSS 0.10-0.49+10
In the top 1% of all EPSS scores+10
In the top 5%+5
EPSS rose 0.20 or more in a week+10
Confirmed real-world attacks
On the CISA KEV list+35
Used in known ransomware campaigns+15
Seen active in the wild+12
The attack can be automated (SSVC)+8
Exploit availabilityhighest match only
A fully weaponized exploit exists+15
A public proof-of-concept exists+10
An exploit is merely referenced+5
Threat activitytime windows: highest match only
Attack activity in the last 7 days+12
Attack activity in the last 30 days+6
Attack activity in the last 90 days+3
Two or more separate signals in 28 days+8
Confirmed by three or more sources+8
Trending in security discussion+4
Reach, freshness and fixesfix rows: one or the other
Affects ten or more products+6
Published in the last 7 days+10
Changed in the last 7 days+5
A fixed version is available+5
No fix available, and on the KEV list+10

A fix adds points rather than removing them

A flaw you can patch today is one worth doing today.

KEV already covers exploit availability

A flaw on the KEV list scores nothing there: the 35 KEV points already cover it.

What attack activity means

A dated signal from any exploitation source: a KEV listing, a new exploit module, a published proof-of-concept, or a threat report.

A worked example

A flaw with nothing attacking it

Take a flaw rated CVSS 7.8, with an EPSS of 0.42 that puts it in the top 1% of all EPSS scores, disclosed four days ago, a vendor fix already out, and no exploit published anywhere. Those are all its signals:

25 + 10 + 10 + 10 + 5 + 5 = 65 → Medium

Both EPSS rows count: one measures the score, the other measures where that score ranks. Serious on paper, and nothing yet says anyone is attacking it.

The same flaw, later that week

It lands on the KEV list with attacks seen in the wild: 35 for the KEV listing, 12 for being in the wild, 12 for attack activity that week and 8 for more than one signal inside a month. 132 raw, capped to 100, Critical.

Reading the score

Honeypots

Two of the sources are honeypot networks: decoy machines on the open internet that record what attacks them. They are the only feeds that stop reporting when the attacks stop, which is what lets the score tell "attacked this week" apart from "attacked in 2021". A quiet honeypot is not proof of safety: they are web-facing decoys, so a flaw exploited by other means may never show up in them.

The most dangerous flaws all arrive at exactly 100

The factors can total well past 100. When several flaws sit at the top together, compare their individual signals rather than their scores. On a flaw that went over, the "Why this score" panel ends with a line subtracting the excess: that is the cap, not an error.

The operator can retune this

The point values above are the shipped defaults, and every flaw is rescored when they change, so the numbers on screen may not match this table.

Where the data comes from

Top

ExploitSignal aggregates 22 public sources.

Core flaw data

NVD and the MITRE CVE list (descriptions, severity, affected products, CISA's enrichment), plus Shodan CVEDB, a keyless per-CVE cross-check that also supplies the European EUVD id.

Exploitation

CISA KEV and VulnCheck KEV (known-exploited), Exploit-DB, Metasploit, Nuclei, and proof-of-concept repos. VulnCheck is the one source here that needs a token, set once by the operator. Without one that source stays empty, so a VulnCheck row reporting nothing on Data Health is that, not a fault.

In the wild

inTheWild.io and two honeypot networks (HoneyLabs and the Shadowserver grid via CIRCL). The only feeds that mark a flaw as in-the-wild.

Threat reporting

AlienVault OTX, whose community pulses tie flaws to named campaigns. A pulse counts as dated threat activity, not as an in-the-wild sighting.

Prediction & packages

FIRST EPSS (exploit-likelihood) and OSV/GitHub advisories (open-source packages).

Buzz

A Hacker News signal for flaws the security community is already discussing.

Vendors

Microsoft, Red Hat and CISA ICS advisories for per-vendor fix status, plus CSAF/VEX providers, seeded with Red Hat and CERT-Bund and editable by the operator.

News

Advisory feeds, by default Zero Day Initiative, CISA, oss-security, CERT/CC and CERT-EU, plus the trade press: BleepingComputer, The Hacker News, SecurityWeek and Krebs on Security. The operator can change the list. They feed the dashboard's Security news card, and every CVE id an article names becomes a link, so it also appears on that flaw's page under In the news. The advisory feeds name one in almost every item; the trade press rarely does, so it is there for the headlines. Headlines and links only, never a copy of the article.

Using the API

Top

Everything on these pages is also available to a program. Most reading endpoints answer anybody; the report and data-health ones follow the same rule as their pages, and an operator can require a key for every read. Anything that is yours, such as triage, notes, tags, bundles and watchlists, always needs a key that belongs to you.

Getting a key

On the API page, under API keys, create one. It is shown once, so copy it then. Send it on every request as an X-API-Key header:

curl -H "X-API-Key: your-key" \
  "https://your-deployment/api/v1/vulnerabilities?limit=5"

You can hold up to 5 keys, and a key may make 120 requests a minute.

Scopes

They narrow what a key may do. Leave them empty and it can do anything you can. Otherwise tick only what the script needs: export for downloads (CSV, STIX, MISP), settings for your preferences and integrations, and write for changing triage, notes, tags, bundles and watchlists. A call outside a key's scopes is refused, not answered with a misleading empty result.

Asking for only the fields you want

The API takes fields for named fields, or include and exclude for whole blocks of related ones. The Response shaping card on the API page is a picker for all three: tick what you want and it builds the URL, runs it against this deployment, and shows the real JSON that comes back next to how much smaller it got.

Saving a shape

Save a shape under a name and ask for it as ?preset=your-name. You can keep up to 20 saved shapes.

  • A preset supplies parameter values; it never rewrites the answer. It resolves to the same parameters you could have typed by hand.
  • Anything you spell out yourself wins, so ?preset=slim&limit=200 does what it looks like.

The endpoint reference

The Reference on the API page lists every endpoint, the filters each accepts, the scopes each needs, and what the error codes mean. Read-only endpoints carry a Try button that runs them then and there, with a real id filled in for you.

Connecting ServiceNow

Top

Skip this unless your organisation runs ServiceNow. ExploitSignal can push flaws into it as records; the controls are on the API page.

How the sync runs

On a schedule you set per instance, ExploitSignal sends whatever changed since it last talked to that instance. Each instance keeps its own place in the queue, so one being down never holds up another and nothing is sent twice.

Make a user for it

Create a dedicated integration user in ServiceNow, one per environment, never a person's account. On its sys_user record tick Web service access only. Every step below uses that user, so an audit shows what the integration did rather than what a person appeared to do.

The target table

Pre-filled with sn_vul_third_party_entry, which belongs to Vulnerability Response, a paid ServiceNow subscription. Without it, point the instance at your own staging or custom table.

Choose how records are written

Import Set (staging)

Records land in a staging table and a ServiceNow transform map decides what to do with them. The integration user needs only import_transformer and write access to that one staging table, never to anything in production. Prefer this if you are unsure.

Table API (direct)

ExploitSignal looks the record up and either updates it or creates it. The only mode that does a true update-in-place, but the integration user needs read and write on the real table.

The dedupe column

In Table API mode this is the ServiceNow column holding the CVE id, and the lookup matches on it. Point it at anything else and every push becomes a new record. In Import Set mode it is unused; your transform map's coalesce field does that job.

Choose how it signs in

OAuth client credentials

The default. In ServiceNow go to System OAuth > Application Registry, create an endpoint for an external client tied to your integration user, and copy the Client ID and Client secret into the form. To rotate, regenerate the secret there and paste the new one here.

API key

Needs the API Key and HMAC Authentication plugin (Washington DC and later). Create a REST API Key record tied to the integration user, plus an API Access Policy accepting key authentication for the endpoints you use, then paste the key. The header defaults to x-sn-apikey.

JWT bearer

For organisations that will not hold a shared secret. Generate an RSA key pair, upload the public half to ServiceNow as a JWT signing key, point a JWT provider and an OAuth application at it, and paste the private half here with the client id and the integration user as the subject.

Not Basic, and secrets never come back

Username-and-password (Basic) authentication is not offered, because ServiceNow is restricting it.

Secrets are write-only: once saved the field shows only a (set) marker, and leaving it blank on save keeps what is stored. A private key is validated as you save it.

What gets sent

The field map

Thirteen fields, mapped to your columns. Leave the field map box empty to use the default column names. To rename them, write JSON with ExploitSignal's field name on the left and your column name on the right. A field with no value is left out rather than sent empty, so ExploitSignal never blanks something a person edited on the ServiceNow side. Only these work on the left: cve_id, title, description, severity, cvss_score, epss_score, risk_score, priority, is_known_exploited, kev_due_date, exploit_maturity, published_at and modified_at.

Min risk

Filters what is sent at all: blank for everything, or, say, 70 for only what matters. It applies as each change goes past, never retrospectively, so lower the threshold later and you need a Backfill to pick up what was skipped under the old one.

Turning it on, in order

  1. 1

    Add the instance

    Name, URL, and the sign-in method with its credentials. Create instance stays greyed out until that method's fields are filled in, and the instance starts disabled.
  2. 2

    Set the rest on the row

    The row appears in the list above the Add button and defaults to Table API: sync mode, target table, dedupe column, min risk and how often it runs, with the field map behind Field map. Save.
  3. 3

    Test

    A real authenticated call to your configured table, so it proves both the credentials and the user's access to that table. It probes the table directly even in Import Set mode, so if you granted only import_transformer it reports access denied while the sync itself works. Trust Dry run and a real sync over Test in that setup.
  4. 4

    Dry run

    Shows how many flaws are queued and the exact record it would send for a few of them, sending nothing. Read one and check the columns look right.
  5. 5

    Enable it

    The schedule takes over. Sync now runs it immediately.
  6. 6

    Backfill

    Optional, and a lot of records: it pushes every flaw you track rather than just what changed.

Letting ServiceNow update your triage

Turning it on

Tick Accept inbound state updates, press Save, then generate a token (shown once) and copy the callback URL. Save before you leave the row: generating a token saves the token and nothing else, so skipping the save leaves you with callbacks that are refused. The Inbound webhook heading reads on once the tick is saved; if it reads off, that is why nothing is arriving.

What ServiceNow POSTs

In ServiceNow, create an Outbound REST Message and a Business Rule that fires after a record is updated and POSTs to that URL with an Authorization: Bearer <token> header and a body like:

{ "cve_id": "CVE-2021-44228", "state": "resolved" }

The states it accepts

The whole value must be one of these, though case and surrounding spaces do not matter; anything else is rejected outright.

  • resolved, closed, fixed, cancelled, canceled mark the flaw dismissed.
  • in_progress, work_in_progress, analysis mark it reviewing.
  • awaiting, deferred, on_hold mark it watching.
  • new, open mark it new.

When something goes wrong

The instance URL was rejected when you saved it
For an ordinary account it has to start with https:// and resolve on the public internet. Only the operator can point one at an internal address.
Authentication failed
The instance rejected the credentials. Re-check the client id and secret, or the JWT private key.
Access to the table was denied
The credentials worked but the user is not allowed on that table. Check its roles, and whether the table needs Vulnerability Response. A wrong API key looks like this too.
Table was not found
A typo, or it does not exist on that instance.
Skipped N rejected records
ServiceNow refused those specific records, usually a field-map value it does not accept. The rest went through; fix the mapping and they are retried on a later change.
The callback URL has no hostname
The deployment has no public address configured. Ask the operator to set PUBLIC_BASE_URL; the path alone is no use from ServiceNow.
The same error every sync
The whole batch is failing rather than one record. Test, Dry run, Sync now and Backfill all act on the saved instance rather than on what is typed in the form.
Do I need an account to use it?
No. The dashboard, vulnerabilities, advisories, intel, and the trend charts on Reports are readable by anyone. An account adds your personal workspace, alerts, and the report archive, including the weekly report written about your own watchlists and triage queue.
Is my triage/notes visible to others?
No. Your workspace (triage, notes, tags, bundles, watchlists, alerts) is private to your account.
Does it scan or change my systems?
No. ExploitSignal is read-only; it never connects to or modifies your infrastructure.
What should I patch first?
Sort by the Risk column, and prioritize anything KEV-listed, in-the-wild, or with high EPSS. The "Why this score" panel explains each ranking.
A flaw I know about is missing, or looks thin. Why?
A fresh deployment loads roughly the last four months, a window the operator sets. Feeds that publish their whole catalogue, such as CISA KEV and EPSS, still bring older flaws in, so an old CVE can appear with its exploitation signals but a sparse description. Data Health shows how far each source has got.
A page is missing from my menu. Why?
On a deployment open to the public, the workspace pages (Watchlists, Bundles, Data Health, API, Settings) appear only after you sign in. On a private one, everybody who can reach the app sees them, except the API page, which always needs an account.
Can I use it from a script?
Yes. See Using the API.