VulnSea has moved to vulnsea.com (and what changed since September)
VulnSea now lives at vulnsea.com. The beta host,
beta.vulnsea.com, has been retired, but nothing that pointed at it breaks.
Here is what that means for you, followed by everything else that shipped
since the September update.
The move
-
Every old link still works. Any
beta.vulnsea.comURL now answers with a permanent redirect to the same path onvulnsea.com, query string included. That covers CVE pages, the.mdtwins, feeds,/llms.txtand the API, and every CVE link we have posted on Bluesky. -
API and MCP clients keep working. The redirect is a
308, so aPOSTstays aPOSTwith its body intact: an MCP client or an/api/sbomcaller still pointed at the beta host gets a real answer. Do update your base URL when you get a chance. It saves a hop:https://vulnsea.com/api/mcp https://vulnsea.com/api/cve -
Your data came with you. The whole corpus (more than 66,000 CVEs at the time of the move), accounts, API keys, watchlists, saved searches and the PoC request queue all moved over as-is. API keys keep working unchanged.
-
You will need to sign in once more. Sessions are tied to the hostname, so everyone is signed out by the move. Sign in with GitHub or Google as before, and you land on the same account.
Faster pages
Public pages and anonymous API responses are now served from Cloudflare's
edge cache: CVE pages, vendor and tag pages, the feeds, /llms.txt,
/api/cve and /api/search. The app already sent the right cache headers;
they are now acted on. Signed-in pages and anything per-user stay uncached,
and freshness is unchanged: CVE pages refresh within ten minutes, the home
feed within two.
Hardening
Before the move we ran a security review of the whole stack and fixed what it found. Nothing here required anything from you, but a few changes are visible to API and agent users:
- Request limits. An MCP JSON-RPC batch now carries at most 20 messages,
and each message counts once against your rate limit (anonymous 60/min,
API key 600/min). Request bodies are capped: 256 KB for
/api/sbomand the OSV endpoints, 1 MB for MCP. Both are far above any valid request (200 components or queries); anything larger gets a413. Details are in the API and MCP docs. - Webhook alerts. Outbound alert webhooks no longer follow redirects, time out after 10 seconds, and refuse every private or internal address, including IPv6 forms that embed one. If your webhook endpoint answers with a redirect, point it at the final URL.
- Sign-in and accounts. Sign-in requests are rate-limited per IP, cross-site writes to account endpoints are refused, and account changes check that the account is in good standing on every request.
- Patched dependencies. The web framework and authentication library were updated to versions that fix recently published advisories. A vulnerability database had better run patched code itself.
/api/dumpstreams without blocking. The full-corpus NDJSON export no longer holds up other requests while a slow client reads it.
Also since September
- Open data licence. VulnSea's own fields (depth score, zones, tags, notes, exploit aggregation) are licensed CC BY 4.0: reuse them freely with attribution. Upstream data keeps its publishers' terms.
- A public status page with the state of the ingest pipeline and each data source.
- No more duplicate Bluesky posts. A sync bug occasionally re-announced a CVE we had already posted; the cause is fixed.
- Daily score refresh is more robust. The job that re-checks EPSS, KEV and public-exploit status for every CVE now handles the full corpus without strain, so scores stay current every day.
As always, if something you rely on looks off after the move (a link, an integration, a feed), tell us. The fastest way is a reply on Bluesky.