Din CVE-”process” ser förmodligen ut så här: någon kollar NVD, någon annan klistrar in länkar i chatten och resten av teamet ignorerar det eftersom det är som att dricka ur en brandpost. Resultatet är förutsägbart. Högriskproblem försvinner i bruset, och samma diskussion dyker upp igen nästa vecka.
SecOps-ledare känner av det först, eftersom de äger backlogen. Men IT-chefer och säkerhetsmedvetna grundare känner också av det. Den här automatiseringen för CVE-sammanfattningar ger dig en rankad, lättläst uppdatering som folk faktiskt öppnar, vilket betyder snabbare prioritering och färre missade ”oj jäklar”-sårbarheter.
Det här workflowet hämtar färska CVE:er från NVD enligt schema, plockar ut det du bryr dig om och skickar sedan en strukturerad Gmail-sammanfattning (HTML-tabell plus klartext). Du får se hur det fungerar, vad du behöver och var team oftast snubblar.
Så fungerar automatiseringen
Hela n8n-workflowet, från trigger till slutlig output:
n8n Workflow Template: NVD + Gmail: CVE-sammanfattningar som teamet läser
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:message-outline", form: "rounded", label: "Send a message", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request"]
n2@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Parse NVD"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Build Digest"]
n5@{ icon: "mdi:robot", form: "rounded", label: "OpenAI Email Crafter", pos: "b", h: 48 }
n3 --> n4
n4 --> n5
n1 --> n3
n2 --> n1
n5 --> n0
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n2 trigger
class n5 ai
class n1 api
class n3,n4 code
classDef customIcon fill:none,stroke:none
class n1,n3,n4 customIcon
Problemet: CVE-uppdateringar är för brusiga för att agera på
NVD är avgörande, men inte särskilt lättjobbat. Nya CVE:er dyker upp hela tiden, beskrivningarna varierar i kvalitet och de viktiga detaljerna är utspridda över fält du inte vill sitta och tolka under en stressig dag. Så ”sammanfattningen” blir en hög länkar, eller ett vidarebefordrat leverantörsmejl, eller ett kalkylark som ingen underhåller. Under tiden fortsätter teamet att ställa samma frågor: ”Är det här relevant för oss?”, ”Finns det en publik exploit?”, ”Hur allvarligt är det?”, ”Vad ska vi göra först?” När svaren inte är uppenbara stannar allt upp.
Friktionen bygger på. Här är var det oftast fallerar.
- Att läsa råa CVE-poster tar så lång tid att du skjuter på det, vilket gör att brådskande saker slinker igenom en dag eller två.
- Att copy-pasta CVE:er till mejl eller chatt tappar ofta kontext som påverkad produkt/version och CVSS-vektorsträngen.
- Orankade listor skapar ”alert fatigue”, så även kritiska saker skummas och glöms bort.
- Olika personer sammanfattar samma CVE på olika sätt, så uppföljningsarbetet blir rörigt och inkonsekvent.
Lösningen: en rankad NVD-sammanfattning skickad via Gmail
Det här n8n-workflowet gör NVD:s senaste CVE:er till en kort, strukturerad uppdatering som är enkel att skanna och ännu enklare att dela. Det körs enligt schema (var 30:e minut som standard), anropar NVD 2.0 API och hämtar de senaste posterna. Sedan extraherar det fälten teamet faktiskt använder: leverantör/produkt/version (från CPE 2.3 när det finns), allvarlighetsgrad och CVSS med rimliga fallbacks, exploit-”signaler” som Exploit-DB eller GitHub-PoC:ar, plus en sammanfattning på enkel engelska och direktlänken till NVD. Därefter bygger workflowet en HTML-tabell och en klartextversion, rankar allt efter allvarlighetsgrad och poäng och ber OpenAI att vässa ämnesrad och text till en ren sammanfattning. Till sist skickas mejlet via Gmail.
Workflowet startar med en schemalagd trigger och en NVD API-förfrågan. I mitten transformeras och sammanställs CVE-data till en sorterad sammanfattning, och sedan används OpenAI för att göra formuleringarna skarpa och konsekventa. Resultatet är ett mejl som teamet kan vidarebefordra, kommentera och faktiskt använda.
Vad du får: automatisering vs. resultat
| Vad det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du granskar nya CVE:er två gånger om dagen och delar uppdateringar med tre personer. Manuellt är det ofta 10 minuter för att hitta relevanta NVD-poster, ytterligare 20 minuter för att plocka ut allvarlighetsgrad, påverkade versioner och länkar, och sedan 10 minuter till för att skriva något sammanhängande. Räkna med cirka 40 minuter per körning, alltså ungefär 1,5 timme per dag när du gör det två gånger. Med det här workflowet lägger du kanske 5 minuter på att skumma den rankade Gmail-sammanfattningen och vidarebefordra de få som är viktiga. ”Skrivarbetet” är redan gjort.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- NVD 2.0 API-nyckel för att hämta senaste CVE:er.
- Gmail för att skicka sammanfattningsmejlet.
- OpenAI API-nyckel (hämta den i din OpenAI API-dashboard).
Svårighetsnivå: Medel. Du kopplar främst in autentiseringar och sätter några miljövariabler, plus att du behöver vara bekväm med att testköra ett workflow.
Vill du inte sätta upp det här själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Så funkar det
Ett schema startar allt. Workflowet körs automatiskt (var 30:e minut som standard), så du är inte beroende av att någon kommer ihåg att ”kolla NVD”.
NVD-data hämtas och normaliseras. En HTTP-förfrågan anropar NVD 2.0 API med din API-nyckel, och sedan transformerar workflowet svaret till konsekventa fält, även när vissa CVSS-versioner eller CPE-detaljer saknas.
Sammanfattningen byggs och rankas. CVE:er sorteras efter allvarlighetsgrad och poäng, exploit-referenser lyfts fram när de finns, och workflowet bygger både en HTML-tabell och en klartext-fallback så att mejlet renderas korrekt överallt.
OpenAI vässar texten och Gmail skickar. AI-steget stramar upp ämnesraden och sammanfattningens formuleringar (med ett strikt JSON-only-kontrakt), och sedan levererar Gmail den färdiga sammanfattningen till din inkorg eller lista.
Du kan enkelt ändra schemat och tröskelvärdena för rankning så att det matchar hur ditt team jobbar. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera schematriggern
Det här arbetsflödet körs enligt ett fast schema för att hämta nya CVE:er från NVD.
- Lägg till och öppna Scheduled Run Starter.
- Ställ in schemaregeln så att den körs var 30:e minut genom att konfigurera Interval med Field =
minutesoch Minutes Interval =30. - Koppla Scheduled Run Starter till External API Fetch.
Steg 2: anslut NVD-datakällan
Hämta de senaste CVE:erna från NVD API och skicka svaret vidare till bearbetningssteget.
- Öppna External API Fetch och ställ in URL till
=https://services.nvd.nist.gov/rest/json/cves/2.0. - Aktivera Send Query och ställ in Specify Query till
json. - Ställ in JSON Query till
={{ JSON.stringify({ // pull enough to pick the newest 20; 7 days is safe pubStartDate: new Date(Date.now() - 7*24*60*60*1000).toISOString(), pubEndDate: new Date().toISOString(), resultsPerPage: 200, startIndex: 0 }) }}. - I Header Parameters, lägg till:
- apiKey =
[CONFIGURE_YOUR_API_KEY] - pubStartDate =
={{ new Date(Date.now() - 24*60*60*1000).toISOString() }} - pubEndDate =
={{ new Date().toISOString() }} - resultsPerPage =
200
- apiKey =
- Koppla External API Fetch till Transform NVD Data.
[CONFIGURE_YOUR_API_KEY] vara oförändrad kan NVD API strypa eller avvisa förfrågan.
Steg 3: konfigurera databearbetning och sammanställning av digest
Dessa noder tolkar NVD-svaret och genererar ett formaterat digest för e-postleverans.
- Öppna Transform NVD Data och behåll den medföljande JavaScript-koden för att tolka CVE:er, upptäcka allvarlighetsgrad/CVSS och bygga strukturerade objekt.
- Verifiera att Transform NVD Data skickar utdata till Compile Digest (exekveringsflöde: Transform NVD Data → Compile Digest).
- Öppna Compile Digest och behåll den medföljande JavaScript-koden som bygger fälten
subject,htmlochtextför e-post. - Säkerställ att Compile Digest skickar utdata till AI Email Refiner.
CVE, Vendor, Severity och CVSS—använd detta som ett konsekvent format för säkerhetsteam.
Steg 4: konfigurera AI Email Refiner
Den här noden skriver om digestet till ett kortfattat, professionellt e-postmeddelande med hjälp av OpenAI.
- Öppna AI Email Refiner och ställ in Model till
gpt-4o-mini. - Ställ in Temperature till
0för konsekvent output. - I Messages, behåll innehållet i användarmeddelandet med uttryck:
=Subject: {{$json.subject}} HTML: {{$json.html}} Text: {{$json.text}}
- Behåll systemmeddelandets innehåll:
=Rewrite this CVE digest email into a concise, professional format. Return ONLY valid JSON: {"subject":"...","html":"...","text":"..."}. - Aktivera JSON Output.
- Credential Required: Anslut era
openAiApi-credentials. - Koppla AI Email Refiner till Dispatch Email Notice.
Steg 5: konfigurera e-postutskicket
Skicka det förädlade digestet till er e-postadress via Gmail.
- Öppna Dispatch Email Notice.
- Ställ in Send To till
[YOUR_EMAIL]. - Ställ in Subject till
={{ $json.message.content.subject }}. - Ställ in Message till
={{ $json.message.content.html }}. - Credential Required: Anslut era
gmailOAuth2-credentials.
={{ $json.message.content.text }} i meddelandetexten.
Steg 6: testa och aktivera ert arbetsflöde
Verifiera att arbetsflödet körs från början till slut och aktivera det sedan för schemalagd körning.
- Klicka på Execute Workflow för att köra från Scheduled Run Starter och bekräfta att data flödar genom External API Fetch → Transform NVD Data → Compile Digest → AI Email Refiner → Dispatch Email Notice.
- Kontrollera utdata från Dispatch Email Notice för att bekräfta att ett strukturerat HTML-e-postmeddelande skickas korrekt.
- Om e-postmeddelandet saknar innehåll, bekräfta NVD API-nyckeln och verifiera att JSON-svaret innehåller
vulnerabilities. - Växla arbetsflödet till Active för att aktivera 30-minutersschemat.
Vanliga fallgropar
- Gmail OAuth-autentiseringar kan löpa ut eller sakna rätt behörigheter. Om saker slutar fungera, börja med att kontrollera Gmail-nodens autentiseringsstatus och din Google-kontos anslutna appar.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
- OpenAI-prompter som lämnas som ”default” låter ofta generiska. Lägg in önskad ton och vad som ska prioriteras (till exempel ”exploit tillgänglig” eller ”internetexponerade system”) tidigt, annars kommer du fortsätta redigera varje mejl.
Vanliga frågor
Cirka 30 minuter när du väl har dina API-nycklar.
Nej. Du kopplar in autentiseringar, sätter ett par miljövariabler och testkör en exekvering.
Ja. n8n har ett gratis alternativ för egen drift och en gratis testperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver även räkna med OpenAI API-kostnader (oftast några cent per sammanfattning) och NVD API-åtkomst (gratis med en API-nyckel).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverdrift.
Ja, men då byter du sista leveranssteget. Ersätt Gmail-noden ”send message” med en Slack-nod (eller Teams/Signal) och mappa samma HTML- eller klartextfält från den sammanställda sammanfattningen. Många team anpassar också prompten i AI Email Refiner för att få kortare, chattanpassade sammanfattningar, plus en ”topp 3”-sektion för snabb överblick.
Oftast beror det på utgången OAuth eller att fel Google-konto är anslutet. Anslut om Gmail-autentiseringen i n8n och bekräfta sedan att Gmail-noden får skicka mejl från adressen du använder. Om workflowet kör men inget mejl kommer fram, kontrollera spam-/karantänregler och säkerställ att ”To”-fältet är korrekt satt (många råkar lämna det pekande mot en placeholder-miljövariabel).
Många, men dina begränsningar beror på var du kör det.
Ofta, ja, om du bryr dig om logik och formatering. Det här workflowet gör faktisk databehandling (parsar NVD-fält, rankar, bygger HTML och klartext och tvingar fram en AI-output som är ”endast JSON”), och n8n är helt enkelt bekvämare för den typen av jobb. Egen drift är också viktigt för säkerhetsteam eftersom du kan undvika exekveringsbegränsningar och behålla mer data under din kontroll. Zapier eller Make kan fortfarande funka för en enkel ”RSS till mejl”-varning, men när du vill ha sortering, fallbacks och konsekvent text märker du snabbt begränsningarna. Prata med en automatiseringsexpert om du vill ha hjälp att välja.
En rankad sammanfattning som landar i Gmail på autopilot flyttar samtalet från ”såg någon det här?” till ”vad gör vi först?”. Ärligt talat är det hela poängen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.