ALERTAS DE CVE

Alertas de CVE por webhook

As CVEs que afetam as tecnologias que você monitora, direto no seu sistema, no Slack ou no Discord: as críticas na hora, o resto num resumo diário. Com rótulos por cliente, para SOC e MSSP.

Como funciona

  1. Monte a sua lista: produtos do catálogo (FortiOS, Node.js, Windows Server…) ou pacotes de código e de sistema (npm, PyPI, Debian…), cada um com rótulos livres, como cliente-acme.
  2. A cada 15 minutos, o Vexday cruza as CVEs novas e as que mudaram com a sua lista.
  3. O que é crítico sai na hora. O resto vai num resumo diário, no horário e no fuso de cada destino.
  4. O histórico não dispara: ao cadastrar uma tecnologia, as CVEs que já a afetavam ficam como linha de base, sem envio.

Quando um alerta dispara

newUma CVE publicada há até 30 dias passa a afetar uma tecnologia da lista.
kevA CVE entra no KEV da CISA: exploração ativa confirmada.
exploitAparece a primeira PoC pública da CVE, datada dos últimos 30 dias.
epssO EPSS passa do limiar da conta: a chance de exploração subiu.
severityO CVSS chega depois da publicação e sobe a CVE para imediato.
gov_brUm alerta oficial do governo brasileiro (CTIR Gov, CISC) passa a citar a CVE.

Na hora ou no resumo

Política padrão: na hora, KEV, PoC pública, alerta oficial do Brasil, CVSS ≥ 9 ou EPSS ≥ 50%; no resumo diário, CVSS ≥ 4; o resto fica registrado, sem envio.

A política é sua. Para fabricantes de muito volume (Microsoft, Oracle, Cisco), o modelo “só exploração ativa” avisa na hora apenas com sinal de exploração. Cada tecnologia também pode ir sempre na hora ou sempre no resumo. E cada destino tem um teto de imediatos por dia: passou dele, os mais graves saem na hora e o resto vai para o resumo.

Destinos

Endpoint JSONUm POST para o seu sistema, assinado com HMAC-SHA256, com novas tentativas em 1 min, 5 min, 30 min, 2 h e 6 h se ele não responder 2xx.
SlackUma mensagem no canal, em Block Kit, com o link de cada CVE.
DiscordUma mensagem no canal, com um embed por CVE na cor da gravidade.

O botão de teste do painel manda uma mensagem de verificação. A URL do Slack e do Discord fica guardada cifrada.

O que chega no seu endpoint

Um POST por rodada, com até 100 alertas imediatos (type cve.alerts), e um por dia com o resumo (type cve.digest). Os campos de cada CVE são os da API, e o attribution traz os créditos que as licenças das fontes pedem.

{
  "id": "4bf933c7-c07a-4a45-a1b0-8729d2eebc8e",
  "type": "cve.alerts",
  "api_version": "2026-11-01",
  "created_at": "2026-11-03T14:05:00+00:00",
  "events": [{
    "id": "0b6d9a51-8c2e-4f7a-9d3b-2e5c1a7f4b60",
    "level": "immediate",
    "reason": "kev",
    "created_at": "2026-11-03T14:00:12+00:00",
    "severity": 9.8, "severity_source": "cvss",
    "cve": {
      "id": "CVE-2026-12345",
      "title": "…",
      "cvss": 9.8, "cvss_severity": "CRITICAL",
      "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "epss": 0.71, "epss_percentile": 0.99,
      "in_kev": true, "kev_ransomware": false,
      "kev_due_date": "2026-11-24",
      "kev_required_action": "Apply mitigations per vendor instructions…",
      "ssvc_exploitation": "active",
      "has_public_poc": true, "has_nuclei": true, "has_metasploit": false,
      "vulncheck_kev": true, "vulncheck_reported_exploit": true,
      "published": "2026-11-01T10:00:00+00:00",
      "url": "https://vexday.io/pt/cve/CVE-2026-12345",
      "gov_br_alerts": []
    },
    "matched": [{
      "kind": "product", "slug": "fortinet-fortios", "name": "FortiOS",
      "vendor": "Fortinet", "ecosystem": null, "tags": ["cliente-acme"]
    }]
  }],
  "attribution": [
    "CVE® records © The MITRE Corporation, used under the CVE Terms of Use (https://www.cve.org/Legal/TermsOfUse).",
    "This product uses data from the NVD API but is not endorsed or certified by the NVD."
  ]
}

Cabeçalhos e assinatura

Content-Type: application/json
User-Agent: Vexday-Webhooks/1
X-Vexday-Event: cve.alerts
X-Vexday-Delivery: 4bf933c7-c07a-4a45-a1b0-8729d2eebc8e
X-Vexday-Signature: t=1762178700,v1=<HMAC-SHA256 hex>

O X-Vexday-Delivery é o mesmo em todas as tentativas: ignore uma entrega que já processou. Para conferir a assinatura, recalcule o HMAC-SHA256 de "t.corpo" com o segredo do endpoint (está no painel) sobre os bytes crus do corpo, e recuse um t com mais de 5 minutos de diferença:

# Python
import hashlib, hmac, time

def verify_signature(secret: str, body: bytes, header: str, tolerance=300) -> bool:
    parts = dict(p.split("=", 1) for p in header.split(","))
    t, v1 = parts.get("t", "0"), parts.get("v1", "")
    if abs(time.time() - int(t)) > tolerance:
        return False
    expected = hmac.new(secret.encode(), f"{t}.".encode() + body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(v1, expected)
// Node.js
const crypto = require("crypto");

// body: the raw body (Buffer), before JSON.parse
function verifySignature(secret, body, header, tolerance = 300) {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const t = parts.t || "0";
  if (Math.abs(Date.now() / 1000 - Number(t)) > tolerance) return false;
  const expected = crypto.createHmac("sha256", secret)
    .update(Buffer.concat([Buffer.from(t + "."), body]))
    .digest("hex");
  const got = Buffer.from(parts.v1 || "");
  return got.length === expected.length &&
    crypto.timingSafeEqual(got, Buffer.from(expected));
}

Planos

O plano muda o volume, nunca o conteúdo: os três têm os mesmos alertas, o resumo, os rótulos e os três destinos. 14 dias grátis para começar, com cartão; cancele quando quiser.

Starter

Para começar: um sistema recebendo os alertas.

R$ 99/mês · ou US$ 19
  • 1 endpoint
  • 25 tecnologias
  • Endpoint JSON, Slack e Discord
  • API: 1.000 requisições por dia
Pro

Para times com mais de um sistema recebendo.

R$ 249/mês · ou US$ 49
  • 3 endpoints
  • 150 tecnologias
  • Endpoint JSON, Slack e Discord
  • API: 5.000 requisições por dia
MSSP

Para quem atende vários clientes: um endpoint por cliente.

R$ 499/mês · ou US$ 99

Na conta grátis, o painel pode avisar por e-mail quando uma CVE da sua stack entra no KEV.

Documentação da API · MCP para assistentes de IA