Sources: The Hacker News ยท BleepingComputer ยท Krebs on Security ยท Have I Been Pwned ยท CISA ยท NVD
(Active exploitation, 0-days, major breaches, active campaigns)
Item: [Title] Category: [Label] Source: [Source Name] Summary: [1-2 sentence summary] URL: [Direct link]
(Patchable vulnerabilities, supply chain attacks, malware)
Item: [Title] Category: [Label] ...
(Policy changes, defensive tools, law enforcement actions, industry news)
| Source | Status |
|---|
| Priority | Item | Action |
|---|
``
Category labels: breach, vulnerability, malware, supply-chain-attack, social-engineering, malvertising, crypto-theft, mobile-security, AI-security, law-enforcement, policy, defensive-tools, active-campaign.
If all sources produce nothing new in the past 24 hours, output exactly [SILENT] (nothing else). This is the cron job's no-content signal.
gives a good 1-2 sentence summary/2026/06/.html โ date is in the URLthehackernews.uk subdomain is used for sponsored content โ check the article link's hostname. If it ends in .uk, the content is sponsored/advertorial, not editorial. This is more reliable than date-based detection alone.https://krebsonsecurity.com/ contains full breach detail including source linkspubStartDate=...&pubEndDate=...&resultsPerPage=20) frequently succeeds without a key. Larger or historical queries will time out.web_search fallback for "recent critical CVEs", or use the small 24h API query abovehttps://services.nvd.nist.gov/rest/json/cves/2.0/?pubStartDate=...&pubEndDate=...&cvssV3Severity=CRITICAL is BLOCKED in cron mode. The tool is disabled for cron jobs because it runs arbitrary local Python without user approval. ALL data parsing must use terminal() with inline Python (python3 -c "..." or heredocs python3 << 'PYEOF'). Never use execute_code in a cron workflow. depending on the terminal backend. Direct json.loads() on piped stdin may fail. Detection: after curl -s "NVD_URL" -o /tmp/nvd_output.txt, try python3 -c "import json; json.load(open('/tmp/nvd_output.txt'))". If it parses, the JSON is normal. If it fails, it's double-escaped โ use the recovery strategy in references/nvd-json-parsing.md. Always save NVD output to a file first (-o flag) so you can retry parsing either way without re-fetching. genuinely. session is active at a time โ navigating to a new URL closes the previous page. Plan your browser workflow: fetch all curl/RSS sources in a single parallel batch first (using terminal calls), then do one browser session for all JS-rendered sites in sequence. Forced sequence example: navigate THN โ extract โ navigate CISA โ extract โ navigate Krebs (if curl failed) โ extract. with %Z does not reliably parse "GMT". Always do pubDate.replace('GMT', '+0000') before parsing. Without this, items in the window will be silently missed because date parsing fails.curl -sL returns , fall back to web_extract(urls=["https://isc.sans.edu/diary/0"]) โ /diary/0 redirects to the most recent handler diary. Extract the publish date from the "Published: YYYY-MM-DD" line in the returned markdown.Wed, 01 Jul 2026 05:10:20 GMT), the same format as The Record. Python's strptime with %z or %Z does not reliably parse "GMT". Always do pubDate.replace('GMT', '+0000') before calling strptime โ without this the date parse silently fails and entries are dropped from results.h2 element. A missing date usually means the article is sponsored/advertorial โ flag as sponsored rather than date-unknown. selectors. The selectors .c-article__type, .field--name-field-advisory-type, and art.querySelectorAll('span') ALL return nothing on CISA's listing page. CISA renders advisory type (ALERT / PUBLICATION / EXTERNAL | RESOURCE) as a plain text node child of each , NOT inside a , , or any other element. Always use art.textContent regex matching (e.g., (art.textContent || '').match(/\b(ALERT|PUBLICATION|EXTERNAL\s[|]\sRESOURCE)\b/)), never querySelectorAll('span').
Related
blogwatcher skill โ for RSS-feed-based blog monitoring with blogwatcher-cli
references/threat-intel-deep-dive.md โ deep-dive methodology for researching a specific CVE, ransomware operation, or threat actor. Structured analytical reports with attack chains, technical mechanisms, email delivery workflow, and the JADEPUFFER/CVE-2025-3248 research as a worked example. Use this when the user asks about a specific vulnerability or threat by name, rather than the periodic news roundup.
references/dead-feeds-workarounds.md (under blogwatcher) โ detailed curl/python3/browser fallback techniques
references/api-queries.md (under security-briefing) โ ready-to-use curl commands and python3 parsers for all 6 sources
references/nvd-json-parsing.md (under security-briefing) โ workaround for double-escaped JSON in cron mode terminal() calls
cron-job-maintenance skill โ for diagnosing cron job delivery/format issues
The user has provided the following instruction alongside the skill invocation: [IMPORTANT: You are running as a scheduled cron job. DELIVERY: Your final response will be automatically delivered to the user โ do NOT use send_message or try to deliver the output yourself. Just produce your report/output as your final response and the system handles the rest. SILENT: If there is genuinely nothing new to report, respond with exactly "[SILENT]" (nothing else) to suppress delivery. Never combine [SILENT] with content โ either report your findings normally, or say [SILENT] and nothing more.]
You are a security briefing agent. Gather threat intelligence from security blogs, CISA, NVD, vendor advisories, and AI security research.
Focus areas:
- AI/agent security vulnerabilities (prompt injection, MCP flaws, tool poisoning)
- CVEs affecting software Mike uses (Linux, Docker, nginx, Node, Python)
- Supply chain attacks and credential leaks
- Authentication/identity threats
Include a weekly StakeBench attack pattern update: check for new research on prompt injection vectors โ indirect injection in web content, stealthy parasitism (attacks that succeed without disrupting user's task), multimodal injection (images carrying injected prompts), and agent architecture quirks that amplify risk (model choice, browser agent implementation). If any new StakeBench research or similar prompt injection benchmarks were published this week, summarize the attack patterns and success rates.
Format: brief digest with actionable items. Prioritize what affects self-hosted AI agents and small-scale infrastructure. Save to ~/.hermes/data/security-briefing/YYYY-MM-DD.md and write a short summary.
Response
Report saved to ~/.hermes/data/security-briefing/2026-08-24.md. Here's the summary:
๐ Cybersecurity Briefing โ Aug 24, 2026
2 critical items, 5 high, 3 medium from 10 sources.
Must-Act
๐ด Zimbra actively exploited โ CISA mandated 3-day patching. If you self-host Zimbra, patch now.
๐ด UAT-10147 AI-powered campaign โ Chinese-speaking group using PentestGPT/DeepAudit to automate Linux/Windows server compromise. EDR bypass + rootkit. Check logs for Metasploit/ysoserial indicators.
Needs Attention
๐ CVE-2026-78050 (CVSS 9.9) โ Comfast router, likely pre-auth RCE. Check hardware.
๐ WordPress plugins โ Two CVSS 8.8 vulns (PPWP PHP Object Injection, Security Hardener Missing Auth). Update.
๐ ToxicPanda Android malware โ 349 apps targeted, abusing VPN permissions. Audit Android devices.
๐ CHIRP eval injection (CVE-2026-78136, CVSS 7.8) โ Update if you use CHIRP.
๐ DOUBLECUP โ New steganography malware dropping payloads in PNGs.
Nothing New (24h)
Krebs, CISA, The Record โ all stale.
Infra-Relevant
- Zimbra patch is the #1 action item โ directly affects self-hosted infra.
- UAT-10147 campaign targets Linux servers via Metasploit/ysoserial โ check your exposure.
- No AI/agent-specific CVEs or prompt injection research in this window.