[{"data":1,"prerenderedAt":814},["ShallowReactive",2],{"page-\u002Fcve-watcher\u002Fnotifications":3,"all-pages":484},{"id":4,"title":5,"body":6,"description":474,"extension":475,"meta":476,"navigation":477,"path":478,"robots":479,"seo":480,"sitemap":481,"stem":482,"__hash__":483},"content\u002F10.cve-watcher\u002F3.notifications.md","CVE Watcher Push Notifications",{"type":7,"value":8,"toc":461},"minimark",[9,14,18,23,39,47,63,67,102,105,109,203,206,209,213,216,226,229,235,238,242,306,314,318,330,334,419,436,440],[10,11,13],"h1",{"id":12},"cve-watcher-push-notifications","CVE Watcher push notifications",[15,16,17],"p",{},"CVE Watcher can push every new or materially upgraded known-exploited\nvulnerability to your own Discord, Slack, email, or Telegram channel. Push\nnotifications require a paid plan; the feed itself stays available on every\nplan.",[19,20,22],"h2",{"id":21},"how-delivery-works","How delivery works",[24,25,26,30,33,36],"ol",{},[27,28,29],"li",{},"A KEV-confirmed CVE finishes NVD enrichment and is published to BountyHub's\npublic Discord.",[27,31,32],{},"The CVE becomes visible in the in-app feed.",[27,34,35],{},"A delivery job is queued for each assigned channel on an active or trialing\npaid plan.",[27,37,38],{},"The job sends one message to that channel.",[15,40,41,42,46],{},"Push happens ",[43,44,45],"strong",{},"after"," the public announcement and in-app visibility, so your\nchannel never gets a CVE that is not already visible in BountyHub. Each CVE\nversion is delivered at most once per channel; retries do not double-send, and a\nre-announced upgrade arrives as a new message.",[15,48,49,50,53,54,58,59,62],{},"Only ",[43,51,52],{},"KEV-confirmed"," CVEs are pushed. The exploit sweep's early ",[55,56,57],"code",{},"likely"," and\n",[55,60,61],{},"watch"," entries appear in the feed but do not trigger notifications until CISA\nadds them to KEV.",[19,64,66],{"id":65},"set-up-a-channel","Set up a channel",[24,68,69,82,92,99],{},[27,70,71,72,75,76,81],{},"Create the integration and notification channel under ",[43,73,74],{},"Notifications"," —\nsee ",[77,78,80],"a",{"href":79},"\u002Fnotifications\u002Foverview","Notifications overview",". A CVE Watcher\nassignment always points at an existing notification channel.",[27,83,84,85,88,89,91],{},"Open ",[43,86,87],{},"CVE Watcher"," and select the ",[43,90,74],{}," tab. The tab is\ndisabled on the free plan.",[27,93,94,95,98],{},"Find the integration kind, choose ",[43,96,97],{},"Assign",", and select the channel.",[27,100,101],{},"Assigning a channel replaces any previous channel of the same kind. Use the\nitem menu to remove an assignment.",[15,103,104],{},"You can have one Discord, one Slack, one email, and one Telegram channel\nassigned at the same time.",[19,106,108],{"id":107},"supported-channels","Supported channels",[110,111,112,128],"table",{},[113,114,115],"thead",{},[116,117,118,122,125],"tr",{},[119,120,121],"th",{},"Kind",[119,123,124],{},"Delivered",[119,126,127],{},"Channel must provide",[129,130,131,147,162,175,192],"tbody",{},[116,132,133,137,140],{},[134,135,136],"td",{},"Discord",[134,138,139],{},"Yes",[134,141,142,143,146],{},"A webhook URL (",[55,144,145],{},"webhook_url",").",[116,148,149,152,154],{},[134,150,151],{},"Slack",[134,153,139],{},[134,155,142,156,158,159,146],{},[55,157,145],{}," or ",[55,160,161],{},"incoming_webhook_url",[116,163,164,167,169],{},[134,165,166],{},"Email",[134,168,139],{},[134,170,171,172,146],{},"A destination address (",[55,173,174],{},"email",[116,176,177,180,182],{},[134,178,179],{},"Telegram",[134,181,139],{},[134,183,184,185,188,189,146],{},"A bot token (",[55,186,187],{},"bot_token",") and chat id (",[55,190,191],{},"chat_id",[116,193,194,197,200],{},[134,195,196],{},"Webhook",[134,198,199],{},"Not yet",[134,201,202],{},"—",[15,204,205],{},"Values are read from the notification channel's configuration first, then from\nthe integration's configuration. A channel that is missing a required value is\nskipped with a warning in the server log; fix the configuration and the next\nCVE will deliver normally.",[15,207,208],{},"Webhook channels can be selected in the UI, but CVE Watcher does not currently\ndeliver pushes through them. Use Discord, Slack, email, or Telegram for alerts.",[19,210,212],{"id":211},"what-a-message-contains","What a message contains",[15,214,215],{},"Discord, Slack, and Telegram receive a Markdown message; email receives the same\nfacts as HTML with a subject line.",[217,218,224],"pre",{"className":219,"code":221,"language":222,"meta":223},[220],"language-text","🚨 CVE-2024-3400 — Palo Alto Networks PAN-OS\nSeverity: CRITICAL\nCVSS: 10.0\nKnown ransomware campaign use\nPublic exploit available\nCommand injection in the GlobalProtect feature...\nhttps:\u002F\u002Fnvd.nist.gov\u002Fvuln\u002Fdetail\u002FCVE-2024-3400\n","text","",[55,225,221],{"__ignoreMap":223},[15,227,228],{},"Email subjects look like:",[217,230,233],{"className":231,"code":232,"language":222,"meta":223},[220],"[CVE Watcher] CVE-2024-3400 (CVSS 10.0, KEV ransomware)\n",[55,234,232],{"__ignoreMap":223},[15,236,237],{},"Messages only include the fields that are known. Wording and formatting may\nchange; treat the CVE id and NVD link as the stable identifiers.",[19,239,241],{"id":240},"when-you-receive-an-alert","When you receive an alert",[110,243,244,254],{},[113,245,246],{},[116,247,248,251],{},[119,249,250],{},"Event",[119,252,253],{},"Alert",[129,255,256,264,276,284,292,299],{},[116,257,258,261],{},[134,259,260],{},"A CVE is added to KEV and enriched",[134,262,263],{},"Yes, as version 1",[116,265,266,269],{},[134,267,268],{},"Severity bucket rises (for example high → critical)",[134,270,271,272,275],{},"Yes, as a new version with the ",[55,273,274],{},"Updated"," flag",[116,277,278,281],{},[134,279,280],{},"CVSS rises by at least 1.0 within the same bucket",[134,282,283],{},"Yes, as a new version",[116,285,286,289],{},[134,287,288],{},"EPSS or exploit references change without a publishable upgrade",[134,290,291],{},"No",[116,293,294,297],{},[134,295,296],{},"Description-only edit",[134,298,291],{},[116,300,301,304],{},[134,302,303],{},"CVE appears in the exploit sweep but is not in KEV",[134,305,291],{},[15,307,308,309,313],{},"See ",[77,310,312],{"href":311},"\u002Fcve-watcher\u002Foverview#how-a-cve-reaches-you","How a CVE reaches you"," for the\nfull pipeline and versioning rules.",[19,315,317],{"id":316},"plans-and-plan-changes","Plans and plan changes",[319,320,321,324,327],"ul",{},[27,322,323],{},"Assigning a channel requires an active or trialing paid plan.",[27,325,326],{},"Delivery only targets users whose subscription is active or trialing on a\nnon-free plan. If your plan lapses, existing assignments remain but no new\npushes are delivered until the subscription is active again.",[27,328,329],{},"The feed remains readable on the free plan.",[19,331,333],{"id":332},"troubleshooting","Troubleshooting",[110,335,336,346],{},[113,337,338],{},[116,339,340,343],{},[119,341,342],{},"Symptom",[119,344,345],{},"Check",[129,347,348,356,364,378,386,397,411],{},[116,349,350,353],{},[134,351,352],{},"Notifications tab is disabled",[134,354,355],{},"Push requires a paid plan.",[116,357,358,361],{},[134,359,360],{},"No channels to pick from",[134,362,363],{},"Create an integration and notification channel of that kind under Notifications first.",[116,365,366,369],{},[134,367,368],{},"Assignment exists but nothing arrives",[134,370,371,372,374,375,377],{},"Confirm the subscription is active or trialing, and that the CVE is KEV-confirmed rather than a ",[55,373,61],{}," \u002F ",[55,376,57],{}," early entry.",[116,379,380,383],{},[134,381,382],{},"Discord or Slack returns an error",[134,384,385],{},"Re-check the webhook URL in the notification channel, and that the webhook still exists in the destination workspace.",[116,387,388,391],{},[134,389,390],{},"Email does not arrive",[134,392,393,394,396],{},"Check the destination address and spam folder; email uses the channel ",[55,395,174],{}," value.",[116,398,399,402],{},[134,400,401],{},"Telegram does not arrive",[134,403,404,405,407,408,410],{},"Check ",[55,406,187],{}," and ",[55,409,191],{},", and that the bot can post in that chat.",[116,412,413,416],{},[134,414,415],{},"A webhook channel never receives CVE pushes",[134,417,418],{},"Webhook delivery is not implemented for CVE Watcher yet.",[15,420,421,422,425,426,429,430,374,433,435],{},"Server operators can find skipped-channel warnings (",[55,423,424],{},"missing webhook_url",",\n",[55,427,428],{},"missing email",", ",[55,431,432],{},"missing bot_token",[55,434,191],{},") in the hub logs.",[19,437,439],{"id":438},"related","Related",[319,441,442,449,454],{},[27,443,444,448],{},[77,445,447],{"href":446},"\u002Fcve-watcher\u002Foverview","CVE Watcher overview"," — sources, tiers, and the\npublish pipeline.",[27,450,451,453],{},[77,452,80],{"href":79}," — integrations and\nnotification channels.",[27,455,456,460],{},[77,457,459],{"href":458},"\u002Fcve-watcher\u002Fapi","CVE Watcher API and scopes"," — assign channels\nprogrammatically.",{"title":223,"searchDepth":462,"depth":463,"links":464},5,4,[465,467,468,469,470,471,472,473],{"id":21,"depth":466,"text":22},2,{"id":65,"depth":466,"text":66},{"id":107,"depth":466,"text":108},{"id":211,"depth":466,"text":212},{"id":240,"depth":466,"text":241},{"id":316,"depth":466,"text":317},{"id":332,"depth":466,"text":333},{"id":438,"depth":466,"text":439},"Send new and upgraded CISA KEV vulnerabilities to Discord, Slack, email, or Telegram from CVE Watcher, and troubleshoot missing alerts.","md",{},true,"\u002Fcve-watcher\u002Fnotifications",null,{"title":5,"description":474},{"loc":478},"10.cve-watcher\u002F3.notifications","LqsUZMrmfPTzomEGcaI4yYuhpXwdwR55Cf_jSUaUOg0",[485,548,564,583,618,634,646,655,666,677,695,714,734,745,756],{"title":486,"path":487,"stem":488,"children":489},"Workflows","\u002Fworkflows","01.workflows",[490,492,496,500,504,508,512,516,520,524,528,532,536,540,544],{"title":486,"path":487,"stem":491},"01.workflows\u002Findex",{"title":493,"path":494,"stem":495},"Workflow Quick Reference","\u002Fworkflows\u002Fquick-reference","01.workflows\u002F00.quick-reference",{"title":497,"path":498,"stem":499},"Workflows Overview","\u002Fworkflows\u002Foverview","01.workflows\u002F01.overview",{"title":501,"path":502,"stem":503},"Workflow Syntax Reference","\u002Fworkflows\u002Fsyntax-reference","01.workflows\u002F02.syntax-reference",{"title":505,"path":506,"stem":507},"Steps","\u002Fworkflows\u002Fsteps","01.workflows\u002F03.steps",{"title":509,"path":510,"stem":511},"Step Outputs","\u002Fworkflows\u002Fstep-outputs","01.workflows\u002F04.step-outputs",{"title":513,"path":514,"stem":515},"Concurrency","\u002Fworkflows\u002Fconcurrency","01.workflows\u002F05.concurrency",{"title":517,"path":518,"stem":519},"Transforms","\u002Fworkflows\u002Ftransforms","01.workflows\u002F06.transforms",{"title":521,"path":522,"stem":523},"For Each","\u002Fworkflows\u002Ffor-each","01.workflows\u002F07.for-each",{"title":525,"path":526,"stem":527},"Modules","\u002Fworkflows\u002Fmodules","01.workflows\u002F08.modules",{"title":529,"path":530,"stem":531},"Agents","\u002Fworkflows\u002Fagents","01.workflows\u002F09.agents",{"title":533,"path":534,"stem":535},"Decisions","\u002Fworkflows\u002Fdecisions","01.workflows\u002F10.decisions",{"title":537,"path":538,"stem":539},"Configuration References","\u002Fworkflows\u002Fconfig","01.workflows\u002F11.config",{"title":541,"path":542,"stem":543},"Comparison With Other Automation Systems","\u002Fworkflows\u002Fcomparison","01.workflows\u002F12.comparison",{"title":545,"path":546,"stem":547},"Generate with AI","\u002Fworkflows\u002Fai-generation","01.workflows\u002F13.ai-generation",{"title":549,"path":550,"stem":551,"children":552},"Projects","\u002Fprojects","02.projects",[553,556,560],{"title":554,"path":550,"stem":555},"Projects & Runs","02.projects\u002Findex",{"title":557,"path":558,"stem":559},"Projects Overview","\u002Fprojects\u002Foverview","02.projects\u002F1.overview",{"title":561,"path":562,"stem":563},"Runs & Artifacts","\u002Fprojects\u002Fruns-artifacts","02.projects\u002F2.runs-artifacts",{"title":565,"path":566,"stem":567,"children":568},"Runners","\u002Frunners","03.runners",[569,571,575,579],{"title":565,"path":566,"stem":570},"03.runners\u002Findex",{"title":572,"path":573,"stem":574},"Runner Overview","\u002Frunners\u002Foverview","03.runners\u002F1.overview",{"title":576,"path":577,"stem":578},"Getting Started with Runners","\u002Frunners\u002Fgetting-started","03.runners\u002F2.getting-started",{"title":580,"path":581,"stem":582},"Custom Runner Images","\u002Frunners\u002Fcustom-image","03.runners\u002F3.custom-image",{"title":584,"path":585,"stem":586,"children":587},"Datasets","\u002Fdatasets","04.datasets",[588,590,594,598,602,606,610,614],{"title":584,"path":585,"stem":589},"04.datasets\u002Findex",{"title":591,"path":592,"stem":593},"Datasets Overview","\u002Fdatasets\u002Foverview","04.datasets\u002F1.overview",{"title":595,"path":596,"stem":597},"Dataset Schemas and Identity","\u002Fdatasets\u002Fschema","04.datasets\u002F2.schema",{"title":599,"path":600,"stem":601},"Pushing and Reading Dataset Rows","\u002Fdatasets\u002Fworkflows","04.datasets\u002F3.workflows",{"title":603,"path":604,"stem":605},"Dataset SQL Reference","\u002Fdatasets\u002Fsql","04.datasets\u002F4.sql",{"title":607,"path":608,"stem":609},"Dataset Structured Filters","\u002Fdatasets\u002Ffilters","04.datasets\u002F5.filters",{"title":611,"path":612,"stem":613},"Dataset Saved Views","\u002Fdatasets\u002Fviews","04.datasets\u002F6.views",{"title":615,"path":616,"stem":617},"Datasets API and CLI","\u002Fdatasets\u002Fapi-cli","04.datasets\u002F7.api-cli",{"title":619,"path":620,"stem":621,"children":622},"Agent","\u002Fagent","05.agent",[623,626,630],{"title":624,"path":620,"stem":625},"BH Agent","05.agent\u002Findex",{"title":627,"path":628,"stem":629},"BH Agent Overview","\u002Fagent\u002Foverview","05.agent\u002F1.overview",{"title":631,"path":632,"stem":633},"MCP servers","\u002Fagent\u002Fmcp-servers","05.agent\u002F2.mcp-servers",{"title":635,"path":636,"stem":637,"children":638},"Bhlast","\u002Fbhlast","06.bhlast",[639,642],{"title":640,"path":636,"stem":641},"Bhlast Servers","06.bhlast\u002Findex",{"title":643,"path":644,"stem":645},"Bhlast servers overview","\u002Fbhlast\u002Foverview","06.bhlast\u002F1.overview",{"title":74,"path":647,"stem":648,"children":649},"\u002Fnotifications","07.notifications",[650,652],{"title":74,"path":647,"stem":651},"07.notifications\u002Findex",{"title":653,"path":79,"stem":654},"Notifications Overview","07.notifications\u002F1.overview",{"title":656,"path":657,"stem":658,"children":659},"Blob Storage","\u002Fblob-storage","08.blob-storage",[660,662],{"title":656,"path":657,"stem":661},"08.blob-storage\u002Findex",{"title":663,"path":664,"stem":665},"Blob Storage Overview","\u002Fblob-storage\u002Foverview","08.blob-storage\u002F1.overview",{"title":667,"path":668,"stem":669,"children":670},"Payloads","\u002Fpayloads","09.payloads",[671,673],{"title":667,"path":668,"stem":672},"09.payloads\u002Findex",{"title":674,"path":675,"stem":676},"Payloads overview","\u002Fpayloads\u002Foverview","09.payloads\u002F1.overview",{"title":678,"path":679,"stem":680,"children":681},"Cve Watcher","\u002Fcve-watcher","10.cve-watcher",[682,684,687,691,692],{"title":87,"path":679,"stem":683},"10.cve-watcher\u002Findex",{"title":685,"path":446,"stem":686},"CVE Watcher Overview","10.cve-watcher\u002F1.overview",{"title":688,"path":689,"stem":690},"CVE Watcher Search and Filters","\u002Fcve-watcher\u002Fsearch","10.cve-watcher\u002F2.search",{"title":5,"path":478,"stem":482},{"title":693,"path":458,"stem":694},"CVE Watcher API and Scopes","10.cve-watcher\u002F4.api",{"title":696,"path":697,"stem":698,"children":699},"Developer","\u002Fdeveloper","11.developer",[700,702,706,710],{"title":696,"path":697,"stem":701},"11.developer\u002Findex",{"title":703,"path":704,"stem":705},"Developer Overview","\u002Fdeveloper\u002Foverview","11.developer\u002F1.overview",{"title":707,"path":708,"stem":709},"Personal Access Token Scopes","\u002Fdeveloper\u002Fscopes","11.developer\u002F2.scopes",{"title":711,"path":712,"stem":713},"Personal Access Tokens","\u002Fdeveloper\u002Fpersonal-access-tokens","11.developer\u002F3.personal-access-tokens",{"title":715,"path":716,"stem":717,"children":718},"Bh","\u002Fbh","12.bh",[719,722,726,730],{"title":720,"path":716,"stem":721},"BH CLI","12.bh\u002Findex",{"title":723,"path":724,"stem":725},"BH CLI Overview","\u002Fbh\u002Foverview","12.bh\u002F1.overview",{"title":727,"path":728,"stem":729},"BH CLI Commands","\u002Fbh\u002Fcommands","12.bh\u002F2.commands",{"title":731,"path":732,"stem":733},"BH CLI Examples","\u002Fbh\u002Fexamples","12.bh\u002F3.examples",{"title":735,"path":736,"stem":737,"children":738},"Billing","\u002Fbilling","13.billing",[739,741],{"title":735,"path":736,"stem":740},"13.billing\u002Findex",{"title":742,"path":743,"stem":744},"Billing Overview","\u002Fbilling\u002Foverview","13.billing\u002F1.overview",{"title":746,"path":747,"stem":748,"children":749},"Tools","\u002Ftools","14.tools",[750,752],{"title":746,"path":747,"stem":751},"14.tools\u002Findex",{"title":753,"path":754,"stem":755},"Cookie Lab","\u002Ftools\u002Fcookie-lab","14.tools\u002F1.cookie-lab",{"title":757,"path":758,"stem":759,"children":760},"Site Policies","\u002Fsite-policies","99.site-policies",[761,763,776,780,784,788,792,796,800],{"title":757,"path":758,"stem":762},"99.site-policies\u002Findex",{"title":764,"path":765,"stem":766,"children":767},"Privacy Policy","\u002Fsite-policies\u002Fprivacy-policy","99.site-policies\u002F1.privacy-policy",[768,772],{"title":769,"path":770,"stem":771},"Company Processors","\u002Fsite-policies\u002Fprivacy-policy\u002Fcompany-processors","99.site-policies\u002Fprivacy-policy\u002F1.company-processors",{"title":773,"path":774,"stem":775},"Data Export Instructions","\u002Fsite-policies\u002Fprivacy-policy\u002Fdata-export-instructions","99.site-policies\u002Fprivacy-policy\u002F2.data-export-instructions",{"title":777,"path":778,"stem":779},"Terms of Service","\u002Fsite-policies\u002Fterms-of-service","99.site-policies\u002F2.terms-of-service",{"title":781,"path":782,"stem":783},"California Resident Notice at Collection","\u002Fsite-policies\u002Fccpa","99.site-policies\u002F3.ccpa",{"title":785,"path":786,"stem":787},"Cancellation Policy","\u002Fsite-policies\u002Fcancellation-policy","99.site-policies\u002F4.cancellation-policy",{"title":789,"path":790,"stem":791},"Refund Policy","\u002Fsite-policies\u002Frefund-policy","99.site-policies\u002F5.refund-policy",{"title":793,"path":794,"stem":795},"Taxes on Services","\u002Fsite-policies\u002Ftaxes-on-services","99.site-policies\u002F6.taxes-on-services",{"title":797,"path":798,"stem":799},"Disclaimer","\u002Fsite-policies\u002Fdisclaimer","99.site-policies\u002F7.disclaimer",{"title":801,"path":802,"stem":803,"children":804},"Security","\u002Fsite-policies\u002Fsecurity","99.site-policies\u002Fsecurity\u002Findex",[805,806,810],{"title":801,"path":802,"stem":803},{"title":807,"path":808,"stem":809},"Security Overview","\u002Fsite-policies\u002Fsecurity\u002Fsecurity-overview","99.site-policies\u002Fsecurity\u002F1.security-overview",{"title":811,"path":812,"stem":813},"Security Response","\u002Fsite-policies\u002Fsecurity\u002Fsecurity-response","99.site-policies\u002Fsecurity\u002F2.security-response",1794410312376]