Triage security vulnerability alerts with NVD, Gemini, Supabase, and Jira

Go to Workflow
0 views
Built by iamvaar iamvaar
Created on August 20, 2026

Description

Quick overview
Youtube Video: https://youtu.be/8f-TzjNmbFI?si=V46dC5o45LGv28S0

This workflow receives vulnerability alerts via webhook, deduplicates repeated events with Redis, enriches CVE details from the NVD API and asset context from Supabase, uses Google Gemini to triage risk with structured output, and creates the appropriate Jira issue before responding to the caller.

How it works
Receives a POST webhook request for a vulnerability alert using header-based authentication.
Validates that the payload contains a properly formatted CVE ID and a non-empty IP address, and immediately returns an error response if invalid.
Increments a Redis counter keyed by CVE ID and IP address to detect duplicates, and immediately returns a duplicate response if the alert was already seen.
Fetches CVE details from the NVD REST API and looks up the target asset in a Supabase table using the provided IP address.
Sends the combined vulnerability and CMDB context to a Google Gemini-powered agent that returns a structured JSON risk score, action, and reasoning.
Creates a Jira issue for either emergency remediation (auto-patch) or manual review (ticket_only/unclear) and responds to the original webhook request.

Setup
Create an n8n Header Auth credential and configure the sending system to include the shared secret header when calling the webhook URL.
Add Redis credentials and ensure your Redis instance can store the deduplication keys (optionally add a TTL/eviction policy for the secops-dedup:* keyspace).
Ensure the NVD API endpoint is reachable from your n8n instance (and add an API key or request headers if your usage requires it).
Add Supabase credentials and confirm your cmdb_assets table includes an ip_address field that matches incoming alerts.
Add Google Gemini (PaLM) API credentials for the Gemini chat model used by the risk analyst agent.
Add Jira Software Cloud credentials and update the target project and issue types (Bug/Task) to match your Jira configuration.

Nodes Used (7)

AI Agent
@n8n/n8n-nodes-langchain.agent
Google Gemini Chat Model
@n8n/n8n-nodes-langchain.lmChatGoogleGemini
HTTP Request
n8n-nodes-base.httpRequest
Jira Software
n8n-nodes-base.jira
Redis
n8n-nodes-base.redis
Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured
Supabase
n8n-nodes-base.supabase