Why EPSS and not just CVSS
A CVSS score says how bad a vulnerability would be if exploited. It says
nothing about whether anyone is actually exploiting it. Sort a CVE feed by
CVSS and you get a list topped by theoretical 9.8s that no one has ever
weaponised, while the 6.5 being sprayed at every host on the internet sits
halfway down.
EPSS — the Exploit Prediction Scoring System — estimates
the probability that a given CVE will be exploited in the wild in the next
30 days. SecScan pulls it from api.first.org for every match and
ranks your alerts by severity and that probability together, so what
surfaces first is what is most likely to actually happen to you.
What you get told about
- New CVEs in software your site runs. Matched on the
NVD’s affected-product and version data, and each alert says
whether the version we detected is in the affected range or no version
could be detected. A CVE the NVD has not analysed yet is matched once it
has been.
- Regressions. A finding you had fixed coming back, or a
grade dropping between scans. This is the one that catches Friday
deploys.
- Your site going down, confirmed over two consecutive
hourly checks so a single dropped request is not an alert — and again
when it comes back.
- Configuration that got weaker. A security header
removed, HSTS switched off, a redirect that now ends on a different
host. Caught within the hour rather than at the next scan.
- Certificate expiry at 30, 14 and 7 days.
- Every completed rescan, with the full AI-written report.
Alerts arrive by email, and by webhook if you configure one. The webhook
payload is Slack-compatible, so a Slack incoming webhook URL
works with no adapter in between — paste it in and alerts land in a
channel.
Deep rescans never use up your free scans — the scheduler queues them
itself. They do count toward your account's daily scan limit, so a long
list of monitored sites leaves less room for manual scans that day.
Creating a subscription goes through the same rate limit as launching a
scan. The hourly check is not a scan and counts against nothing: it is
one request, and it grades nothing.
Pausing a site
Each monitored site has a Pause button. While it is paused there are no
scans, uptime checks, CVE alerts or emails for that site, and nothing is
deleted: the history stays readable and Resume carries on. Use it while you
redesign a site or migrate hosts, instead of cancelling and starting over.
A paused site shows a Paused badge so it is never silently unwatched. A
manual "Scan now" still works.
What it does not do
Monitoring re-runs the same black-box checks on a schedule. It does not
watch your source repository, your CI pipeline, or your dependency
manifests — if a vulnerable package is installed but never reachable from
the outside, an external scanner will not see it, and neither will this. It
is the outside view, taken repeatedly.