Skip to content

cisa cybersecurity mcp server changelog

io.github.cyanheads/cisa-cybersecurity-mcp-server

14 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • AGENTS.md +9 −8

    https://raw.githubusercontent.com/cyanheads/cisa-cybersecurity-mcp-server/HEAD/AGENTS.md

    − **Version:** 0.4.0− **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.18`− **Engines:** Bun ≥1.4.0, Node ≥24.0.0− | `cisa_get_alerts` | `cisa-feeds`. A 30-item rolling window; the cap is upstream's, not a server choice. |− - Both advisory outline arms retain the complete `advisory` header, including URLs and attribution. Remediations, flags, and threats retain `groupIds`; grouped `productIds` union direct IDs with group members in document order, while direct-only arrays keep their order and duplicates. Unresolved references remain unresolved. Ingest-content version 3 refreshes unchanged stored documents; optional flags/threats support rows awaiting re-ingest.− - Two processes never sync one index at once. Seed and refresh go through `CsafMirrorService.sync()`, which holds the `mirror_meta` lease (`sync-lease.ts`) — never call `mirrorInstance.runSync()` directly outside tests.− - A computed BOD 26-04 timeline and CISA's assigned KEV due date are two separate facts, reported side by side and never reconciled.− `npm run bundle` produces a `.mcpb` extension bundle for one-click install in Claude Desktop. The pack step is followed by `scripts/clean-mcpb.ts`, which prunes dev dependencies (`mcpb clean`) and strips four classes of `node_modules/**` content that root-anchored `.mcpbignore` patterns cannot reach: dependency-shipped agent docs (`framework-skills/`, `skills/`, `.claude/`, `.agents/`, `SKILL.md`), platform-specific native bindings that would lock the bundle to the platform it was packed on (`NA+ **Version:** 0.5.0+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.22`+ **Engines:** Bun ≥1.4.4, Node ≥24.0.0+ | `cisa_get_alerts` | `cisa-feeds`. Up to 30 items per call from the available feed window. Full detail expands capped descriptions without an advisory ID. |+ - Both advisory outline arms retain the complete `advisory` header, including URLs and attribution. Remediations, flags, and threats retain `groupIds`; grouped `productIds` union direct IDs with group members in document order, while direct-only arrays keep their order and duplicates. Unresolved references remain unresolved. Ingest content version 4 backfills vulnerability references, FIRST CVSS v4 vectors, and vendor advisory search data on unchanged documents. Fields introduced by re-ingest st+ - Two processes never sync one index at once. Seed and refresh go through `CsafMirrorService.sync()`, whose `mirror_meta` lease (`sync-lease.ts`) covers preflight and coordinates with older server and CLI versions; the framework lease additionally fences page and state commits. Never call `mirrorInstance.runSync()` directly outside tests.+ - Report the computed BOD 26-04 timeline and CISA's assigned KEV due date separately. Assess agreement only when the KEV entry cites BOD 26-04, exposure is stated, and both values can be compared.+ `npm run bundle` produces a `.mcpb` extension bundle for one-click install in Claude Desktop. The pack step is followed by `scripts/clean-mcpb.ts`, which prunes dev dependencies (`mcpb clean`) and strips four classes of `node_modules/**` content that root-anchored `.mcpbignore` patterns cannot reach: dependency-shipped agent docs (`framework-skills/`, `skills/`, `.claude/`, `.agents/`, `AGENTS.md`, and `CLAUDE.md` at a package root, plus `SKILL.md` anywhere), preserving runtime directories such + Credit outside reporters in the changelog, release PR, and annotated tag using the format in `changelog/template.md`.
  • server.json 1 field changed
    version
    0.4.1 0.5.0
  • Resources +21 −21
    • + CVE-2026-123039 — Check Point Multiple Products Incorrect Permission Assignment for Critical Resource Vulnerability
    • + CVE-2026-114713 — UnrealIRCd Improper Neutralization of Delimiters Vulnerability
    • + CVE-2026-20320 — Cisco BroadWorks Improper Restriction of XML External Entity Reference Vulnerability
    • + CVE-2026-125350 — Google Chromium Use-After-Free Vulnerability
    • + CVE-2026-124194 — Microsoft Office Outlook Missing User Interaction for Potentially Unsafe Action Vulnerability
    • + CVE-2026-116606 — Barracuda Networks Email Security Gateway (ESG) Authentication Bypass Using an Alternate Path or Channel Vulnerability
    • + CVE-2026-111793 — Openwave Messaging Limited Webtop Media Transcoder Incorrect Resource Transfer Between Spheres Vulnerability
    • + CVE-2026-111560 — Barracuda Networks Multiple Products OS Command Injection Vulnerability
    • + CVE-2026-123218 — IBM Aspera Faspex Incorrect Authorization Vulnerability
    • + CVE-2026-123158 — OpenBSD OpenSSH Unexpected Status Code or Return Value Vulnerability
    • + CVE-2026-116779 — SignalWire FreeSwitch Code Injection Vulnerability
    • + CVE-2026-102895 — GPUStack Improper Authentication Vulnerability
    • + CVE-2026-19868 — SonicWall SonicOS SSLVPN Use of Single-factor Authentication Vulnerability
    • + ICSA-26-316-01 — Siemens Building Automation and Energy Products
    • + ICSA-26-316-02 — Siemens Desigo, Gridscale
    • + ICSA-26-316-03 — Siemens Industrial Edge Management
    • + ICSA-26-316-04 — Siemens RUGGEDCOM APE1808
    • + ICSA-26-316-05 — Siemens RUGGEDCOM APE1808
    • + ICSA-26-237-03 — Siemens SIMATIC IoT2050 Advanced
    • + ICSA-26-155-04 — Hitachi Energy RTU500 (Update A)
    • + ICSA-26-211-07 — Mitsubishi Electric CC-Link IE TSN Communication Protocol (Update B)
    • − CVE-2026-96652 — Plex Media Server Server-Side Request Forgery (SSRF) Vulnerability
    • − CVE-2026-110936 — Siemens Software Center Uncontrolled Search Path Element Vulnerability
    • − CVE-2026-106931 — EG Secure Solutions SiteGuard Server Edition OS Command Injection Vulnerability
    • − CVE-2026-102764 — BeyondTrust Remote Support Authentication Bypass by Spoofing Vulnerability
    • − CVE-2025-61624 — Fortinet Multiple Products Path Traversal Vulnerability
    • − CVE-2026-21589 — Atlassian Multiple Products Files or Directories Accessible to External Parties Vulnerability
    • − CVE-2026-76519 — Cisco Secure Email Gateway Relative Path Traversal Vulnerability
    • − CVE-2026-105134 — Ahsay AhsayCBS Command Injection Vulnerability
    • − CVE-2026-105133 — Ahsay AhsayCBS Improper Authentication Vulnerability
    • − CVE-2026-0322 — Palo Alto Networks PAN-OS Code Injection Vulnerability
    • − CVE-2026-96951 — Microsoft Windows Command Injection Vulnerability
    • − CVE-2026-104935 — Ivanti Connect Secure Authentication Bypass by Spoofing Vulnerability
    • − CVE-2023-22894 — Strapi Cleartext Storage of Sensitive Information Vulnerability
    • − ICSA-26-295-13 — Siemens WinCC
    • − ICSA-26-295-14 — Siemens SIMATIC S7 PLCs Web Server
    • − ICSA-26-295-15 — Siemens RUGGEDCOM CROSSBOW Station Access Controller
    • − ICSA-26-295-16 — Siemens SIMATIC S7-1500 TM MFP
    • − ICSA-26-295-17 — Siemens Industrial Edge Devices
    • − ICSA-26-295-18 — Siemens RUGGEDCOM APE1808 Devices
    • − ICSMA-26-295-01 — InterSystems Corporation InterSystems IRIS for Health
    • − ICSA-26-274-06 — Meari IoT Cloud Platform OpenAPI Service (Update A)

  • server.json 1 field changed
    version
    0.4.0 0.4.1

  • Resources +25 −24
    • + CVE-2024-27834 — Apple Multiple Products Improper Authentication Vulnerability
    • + CVE-2026-119977 — WordPress WordPress Core Time-of-check Time-of-use (TOCTOU) Race Condition Vulnerability
    • + CVE-2026-118527 — Ivanti Connect Secure Generation of Predictable Numbers or Identifiers Vulnerability
    • + CVE-2026-111357 — Ivanti Connect Secure Missing Authentication for Critical Function Vulnerability
    • + CVE-2026-97229 — GitLab Community Edition and Enterprise Edition Integer Overflow or Wraparound Vulnerability
    • + CVE-2026-76418 — Cisco Secure Firewall ASA Software and Cisco Secure FTD Software Unchecked Return Value to NULL Pointer Dereference Vulnerability
    • + CVE-2026-46300 — Linux Kernel Missing Initialization of a Variable Vulnerability
    • + CVE-2026-41709 — Broadcom VMWare ESX Insufficient Logging Vulnerability
    • + CVE-2026-48356 — Adobe Commerce and Magento Unrestricted Upload of File with Dangerous Type Vulnerability
    • + CVE-2026-111497 — Google Brotli Unchecked Return Value Vulnerability
    • + CVE-2026-109619 — PHP Stale Internal Request-State Vulnerability
    • + CVE-2026-109618 — PHP Memory Corruption Vulnerability
    • + CVE-2026-114625 — Arista VeloCloud Orchestrator SQL Injection Vulnerability
    • + CVE-2026-110447 — Collabora Online – Built-in CODE Server OS Command Injection Vulnerability
    • + ICSA-26-307-01 — Subnet Solutions PowerSYSTEM Center
    • + ICSA-26-302-01 — Siemens Mendix SAML Module
    • + ICSA-26-302-02 — Hitachi Energy TRO600 series products
    • + ICSA-26-302-03 — Hitachi Energy CoreTec Product
    • + ICSA-26-258-06 — Siemens Mendix SAML
    • + ICSA-26-125-01 — Hitachi Energy PCM600 (Update A)
    • + ICSA-25-275-02 — Hitachi Energy MSM Product (Update A)
    • + ICSA-26-300-01 — EPICS Base
    • + ICSA-26-300-02 — Mitsubishi Electric GENESIS, GENESIS64, ICONICS Suite, Hyper Historian, AnalytiX, MobileHMI, IoTWorX, MC Works64, GENESIS32 and BizViz
    • + ICSA-26-267-02 — Eufy Omni C20, Omni X10 Pro (Update A)
    • + cisa-cybersecurity-guide
    • − CVE-2021-3199 — ONLYOFFICE Docs Server Path Traversal Vulnerability
    • − CVE-2016-3081 — Apache Struts Command Injection Vulnerability
    • − CVE-2015-5477 — ISC BIND Data Processing Errors Vulnerability
    • − CVE-2015-3306 — ProFTPD Improper Access Control Vulnerability
    • − CVE-2026-88779 — Citrix NetScaler Improper Restriction of Operations within the Bounds of a Memory Buffer Vulnerability
    • − CVE-2026-102490 — Zammad GmbH Zammad Improper Privilege Management Vulnerability
    • − CVE-2026-102489 — Zammad GmbH Zammad Session Fixation Vulnerability
    • − CVE-2026-104286 — Fortinet FortiMail Path Traversal Vulnerability
    • − CVE-2026-76504 — Cisco Catalyst SD-WAN Manager Hex Encoding Vulnerability
    • − CVE-2026-86950 — Apple Multiple Products Out-of-Bounds Write Vulnerability
    • − CVE-2026-88772 — Citrix NetScaler Improper Restriction of Operations within the Bounds of a Memory Buffer Vulnerability
    • − CVE-2026-88771 — Citrix NetScaler Improper Input Validation Vulnerability
    • − CVE-2026-87902 — WordPress Core Remote File Inclusion Vulnerability
    • − CVE-2026-67279 — Mikrotik RouterOS Improper Enforcement of Behavioral Workflow Vulnerability
    • − ICSA-26-293-01 — HMS Networks PEAK-System PCAN Windows drivers
    • − ICSA-26-293-03 — Moxa AIG-302 ThingsPro Edge
    • − ICSA-26-293-04 — Hitachi Energy MicroSCADA X SYS600 Product
    • − ICSA-26-293-05 — Hitachi Energy RTU500 Product
    • − ICSA-26-062-03 — Hitachi Energy RTU500 Product (Update A)
    • − ICSA-26-288-01 — Eclipse Foundation Eclipse Milo
    • − ICSA-26-288-02 — Guangzhou Juan IoT Technology EseeCloud
    • − ICSMA-26-288-01 — Thermo Fisher Torrent Suite Software
    • − ICSMA-26-288-02 — J4Care dcm4che
    • − ICSA-26-281-01 — Red Lion Controls N-Tron 700 Series - Update A
  • AGENTS.md +36 −16

    https://raw.githubusercontent.com/cyanheads/cisa-cybersecurity-mcp-server/HEAD/AGENTS.md

    − **Version:** 0.3.2− **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.15`− **MCP SDK:** `@modelcontextprotocol/server` ^2.3.1− **Zod:** ^4.6.6− Four keyless CISA datasets, all read-only, served over seven tools and two resources. `docs/design.md` is the as-built specification — upstream shapes, per-tool contracts, storage tiers, and the numbered decisions log. Read it before changing a handler; every count and field name in it was verified against the live sources.−     cveIds: z.array(CveIdInputSchema.describe('One CVE identifier, e.g. CVE-2025-39964.')).min(1).max(200)−       .describe('CVE identifiers to check, up to 200 per call. The whole batch costs zero upstream requests.'),−     results: z.array(KevRecordSchema).describe('One result per requested CVE, in the order supplied.'),−     const results = input.cveIds.map((cveId) => {−     return { results, foundCount, notFoundCount: results.length - foundCount };−   format: (result) => [{ type: 'text', text: result.results.flatMap(renderKevRecord).join('\n') }],− All seven `CISA_*` variables are optional — every source is keyless and every tunable has a working default, so the server runs correctly with none of them set. Adding one means editing four files together: the schema above, `.env.example`, `server.json` `environmentVariables[]` (both package entries), and `manifest.json` (`mcp_config.env` + `user_config`). `lint:packaging` fails on a mismatch.− Skills are modular instructions in `framework-skills/` at the project root. Read them directly when a task matches — e.g., `framework-skills/add-tool/SKILL.md` when adding a tool. `bun run list-skills` prints the full registry. The directory is deliberately not `skills/`: Claude Code and Codex auto-load a plugin's root `skills/`, so a server that ships `.claude-plugin/` or `.codex-plugin/` would hand these development skills to every agent that installs it. Keep `skills/` free for skills meant f− **Agent skill directory:** Copy skills into the directory your agent discovers (Claude Code: `.claude/skills/`, others: equivalent). Skills then load as context without referencing `framework-skills/` paths. After framework updates, run the `maintenance` skill — Phase B re-syncs the agent directory.− | `bun run lint:packaging` | Packaging surface checks — `server.json`/`manifest.json` env-var parity (run by devcheck) |− `npm run bundle` produces a `.mcpb` extension bundle for one-click install in Claude Desktop. The pack step is followed by `scripts/clean-mcpb.ts`, which prunes dev dependencies (`mcpb clean`) and strips three classes of `node_modules/**` content that root-anchored `.mcpbignore` patterns cannot reach: dependency-shipped agent docs (`framework-skills/`, `skills/`, `.claude/`, `.agents/`, `SKILL.md`), platform-specific native bindings that would lock the bundle to the platform it was packed on (`N+ **Version:** 0.4.0+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.18`+ **MCP SDK:** `@modelcontextprotocol/server` ^2.4.0+ **Zod:** ^4.6.7+ Four keyless CISA datasets, all read-only, served over seven tools, two dataset resource templates, and the published `cisa-cybersecurity-guide` skill resource. `docs/design.md` is the as-built specification — upstream shapes, per-tool contracts, storage tiers, and the numbered decisions log. Read it before changing a handler; its measured corpus counts and sizes are historical observations.+ | `cisa-cybersecurity-guide` skill resource | Root `skills/cisa-cybersecurity-guide/SKILL.md`, exposed through `createApp({ skills: 'skills' })`. Vulnerability triage, advisory applicability, and evidence coverage workflows. |+ - Five read tools advertise a 1,000 hard ceiling and share workload caps in `src/mcp-server/read-limits.ts`: CVE status 200, SSVC 50, KEV search 100, ICS search 50, alerts 30. `CISA_CLAMP_OVERSIZED_INPUTS=true` bounds requests with explicit batch `unprocessedIds` or page continuation; false throws non-retryable `read_limit_exceeded`. Clamping logs and increments `mcp.cisa.input.normalized`; counts cover processed CVEs only.+ - KEV continuation takes the offset from its cursor and the page size from the current request. Alert continuation binds feed and GUID within the available current or cached window. An unavailable anchor gives empty items and restart guidance, never an inferred eviction or historical completeness claim.+ - SSVC results expose `outcome`; `fetch_failed` counts toward `failedCount`, never `notFoundCount`. Partial failures cannot support a notice claiming no SSVC exists; all processed lookups failing remains retryable `enrichment_source_unavailable`.+ - Both advisory outline arms retain the complete `advisory` header, including URLs and attribution. Remediations, flags, and threats retain `groupIds`; grouped `productIds` union direct IDs with group members in document order, while direct-only arrays keep their order and duplicates. Unresolved references remain unresolved. Ingest-content version 3 refreshes unchanged stored documents; optional flags/threats support rows awaiting re-ingest.+ import { applyReadLimit } from '@/mcp-server/read-limits.js';+     cveIds: z.array(CveIdInputSchema.describe('One CVE identifier, e.g. CVE-2025-39964.')).min(1).max(1000)+       .describe('Accept up to 1,000 CVE IDs; process 200 and return the remainder unless clamping is disabled.'),+     results: z.array(KevRecordSchema).describe('One result per processed CVE, in the order supplied.'),+     unprocessedIds: z.array(CveIdInputSchema).optional().describe('Normalized IDs to send in a follow-up call.'),+     const count = applyReadLimit('cisa_check_cve_status', input.cveIds.length, ctx);+     const unprocessedIds = input.cveIds.slice(count);+     const results = input.cveIds.slice(0, count).map((cveId) => {+     return { results, foundCount, notFoundCount: results.length - foundCount, ...(unprocessedIds.length ? { unprocessedIds } : {}) };+   format: (result) => [{ type: 'text', text: [...result.results.flatMap(renderKevRecord), ...(result.unprocessedIds ? [`Unprocessed IDs: ${result.unprocessedIds.join(', ')}`] : [])].join('\n') }],+   clampOversizedInputs: z.stringbool().default(true)+     .describe('Bound oversized read inputs with explicit continuation; false rejects them.'),+     clampOversizedInputs: 'CISA_CLAMP_OVERSIZED_INPUTS',+ All eight `CISA_*` variables are optional — every source is keyless and every tunable has a working default, including `CISA_CLAMP_OVERSIZED_INPUTS=true`. The server runs correctly with none set. Adding one means updating the schema above, `.env.example`, `server.json` `environmentVariables[]` (both package entries), `manifest.json` (`mcp_config.env` + `user_config`), and both legacy plugin environment surfaces (`.claude-plugin/plugin.json` and `.codex-plugin/mcp.json`). Keep the names and defau+ Two skill trees live at the project root, written for different readers:+ | Tree | For | Written by |+ |:-----|:----|:-----------|+ | `framework-skills/` | The agent developing this server — framework skills (`metadata.audience: external`) plus any development-time skills of the server's own | `init` and the `maintenance` sync (framework skills); you (your own) |+ | `skills/` | The agents that install the server and call its tools — tool chains, identifier sources, gates | You, deliberately, with the `add-skill` skill. Absent by default; usually none is needed |+ Development skills are modular instructions. Read them directly when a task matches — e.g., `framework-skills/add-tool/SKILL.md` when adding a tool. `bun run list-skills` prints the full registry. Their directory is deliberately not `skills/`: Claude Code and Codex auto-load a plugin's root `skills/`, so a server that ships `.claude-plugin/` or `.codex-plugin/` would hand them to every agent that installs it.+ A published skill in root `skills/` reaches plugin installs and the `.mcpb` bundle as-is, ships in the npm package and the Docker image, and reaches MCP clients when the server opts in with `createApp({ skills: 'skills' })`. `lint:packaging` validates the tree.+ **Agent skill directory:** Copy `framework-skills/` into the directory your agent discovers (Claude Code: `.claude/skills/`, others: equivalent). Skills then load as context without referencing `framework-skills/` paths. After framework updates, run the `maintenance` skill — Phase B re-syncs the agent directory.+ | `add-skill` | Author a skill the server publishes in root `skills/` for the agents that use it — when one earns its place, structure, validation, delivery |+ | `bun run lint:packaging` | Packaging surface checks — env-var parity, root-anchored bundle exclusions, plugin manifests, and published skills (run by devcheck) |+ `npm run bundle` produces a `.mcpb` extension bundle for one-click install in Claude Desktop. The pack step is followed by `scripts/clean-mcpb.ts`, which prunes dev dependencies (`mcpb clean`) and strips four classes of `node_modules/**` content that root-anchored `.mcpbignore` patterns cannot reach: dependency-shipped agent docs (`framework-skills/`, `skills/`, `.claude/`, `.agents/`, `SKILL.md`), platform-specific native bindings that would lock the bundle to the platform it was packed on (`NA+ - [ ] `plugin.json` + `mcp.json` (Agent Plugins 1.0.0 — read by Codex, Cursor, GitHub Copilot, VS Code, Kiro) populated — `plugin.json` `name` = the unscoped repo name (lowercase `a-z`, `0-9`, `-`, `.` only); `version`, `description`, `author`, `homepage`, `repository`, `license`, `keywords` from `package.json`; no other top-level field, `extensions` included. `mcp.json` holds one `"type": "stdio"` entry keyed by the unscoped name, `npx -y <full package name>`, and the same fixed `env` as `.code

  • server.json 2 fields changed
    env_vars
    MCP_LOG_LEVEL, CISA_KEV_REFRESH_CRON, CISA_CSAF_MIRROR_PATH, CISA_CSAF_MIRROR_AUTO_INIT, CISA_CSAF_REFRESH_CRON, CISA_VULNRICHMENT_CACHE_TTL_SECONDS, CISA_FEED_CACHE_TTL_SECONDS, CISA_HTTP_TIMEOUT_MS CISA_CLAMP_OVERSIZED_INPUTS, MCP_LOG_LEVEL, CISA_KEV_REFRESH_CRON, CISA_CSAF_MIRROR_PATH, CISA_CSAF_MIRROR_AUTO_INIT, CISA_CSAF_REFRESH_CRON, CISA_VULNRICHMENT_CACHE_TTL_SECONDS, CISA_FEED_CACHE_TTL_SECONDS, CISA_HTTP_TIMEOUT_MS
    version
    0.3.2 0.4.0

  • Resources +33 −33
    • + CVE-2026-96656 — Plex Media Server External Control of File Name or Path Vulnerability
    • + CVE-2026-96655 — Plex Media Server Server-Side Request Forgery (SSRF) Vulnerability
    • + CVE-2026-96654 — Plex Media Server Improper Neutralization of Encoded URI Schemes in a Web Page Vulnerability
    • + CVE-2026-96652 — Plex Media Server Server-Side Request Forgery (SSRF) Vulnerability
    • + CVE-2026-110936 — Siemens Software Center Uncontrolled Search Path Element Vulnerability
    • + CVE-2026-106931 — EG Secure Solutions SiteGuard Server Edition OS Command Injection Vulnerability
    • + CVE-2026-102764 — BeyondTrust Remote Support Authentication Bypass by Spoofing Vulnerability
    • + CVE-2025-61624 — Fortinet Multiple Products Path Traversal Vulnerability
    • + ICSA-26-295-01 — Kiloview E3 NDI Encoder
    • + ICSA-26-295-02 — Siemens Industrial Edge App Publisher
    • + ICSA-26-295-03 — Siemens Software Center
    • + ICSA-26-295-04 — Siemens Capital Embedded AR Classic
    • + ICSA-26-295-05 — Siemens SENTRON 3NA COM Fuse
    • + ICSA-26-295-06 — Siemens PSS(R)SINCAL
    • + ICSA-26-295-07 — Siemens SIMATIC IPCs
    • + ICSA-26-295-08 — Siemens APOGEE, TALON and Desigo PXC/PXM Products
    • + ICSA-26-295-09 — Siemens Industrial Edge Device Kit
    • + ICSA-26-295-10 — Siemens SIMATIC S7 Webserver API
    • + ICSA-26-295-11 — Siemens SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP
    • + ICSA-26-295-12 — Siemens RUGGEDCOM CROSSBOW
    • + ICSA-26-295-13 — Siemens WinCC
    • + ICSA-26-295-14 — Siemens SIMATIC S7 PLCs Web Server
    • + ICSA-26-295-15 — Siemens RUGGEDCOM CROSSBOW Station Access Controller
    • + ICSA-26-295-16 — Siemens SIMATIC S7-1500 TM MFP
    • + ICSA-26-295-17 — Siemens Industrial Edge Devices
    • + ICSA-26-295-18 — Siemens RUGGEDCOM APE1808 Devices
    • + ICSMA-26-295-01 — InterSystems Corporation InterSystems IRIS for Health
    • + ICSA-26-274-06 — Meari IoT Cloud Platform OpenAPI Service (Update A)
    • + ICSA-26-293-01 — HMS Networks PEAK-System PCAN Windows drivers
    • + ICSA-26-293-03 — Moxa AIG-302 ThingsPro Edge
    • + ICSA-26-293-04 — Hitachi Energy MicroSCADA X SYS600 Product
    • + ICSA-26-293-05 — Hitachi Energy RTU500 Product
    • + ICSA-26-062-03 — Hitachi Energy RTU500 Product (Update A)
    • − CVE-2026-65660 — Microsoft SharePoint Code Injection Vulnerability
    • − CVE-2026-71362 — Adobe Commerce and Magento Incorrect Authorization Vulnerability
    • − CVE-2026-5430 — WSO2 Multiple Products Path Traversal Vulnerability
    • − CVE-2026-94127 — F5 BIG-IP APM Heap-based Buffer Overflow Vulnerability
    • − CVE-2026-93952 — Arista VeloCloud Orchestrator Improper Input Validation Vulnerability
    • − CVE-2026-93616 — Check Point Multiple Products Path Traversal Vulnerability
    • − CVE-2026-85102 — Check Point Multiple Products Improper Certificate Validation Vulnerability
    • − CVE-2026-7273 — Zyxel GS1900 Series Switches Stack-Based Buffer Overflow Vulnerability
    • − ICSA-26-280-01 — CISA Malcolm
    • − ICSA-26-286-01 — Inductive Automation Ignition Software
    • − ICSA-26-286-02 — Swann Communications SWIFI-SE2KIC
    • − ICSA-26-281-02 — Grid Protection Alliance openPDC and openHistorian
    • − ICSA-26-281-03 — Satel Netco Design
    • − ICSMA-26-223-02 — Pulsetto Vagus Nerve Stimulator (Update A)
    • − ICSA-26-069-02 — Lantronix EDS3000PS and EDS5000 (Update B)
    • − ICSA-25-259-02 — Hitachi Energy RTU500 Series
    • − ICSA-26-279-06 — Hitachi Energy RTU500
    • − ICSA-26-279-05 — Hitachi Energy REB500
    • − ICSA-26-279-04 — Hitachi Energy SOI
    • − ICSA-26-279-03 — Hitachi Energy Asset Suite
    • − ICSA-26-279-02 — Savannah lwIP SMTP client
    • − ICSA-26-279-01 — Johnson Controls EasyIO FG
    • − ICSA-26-274-01 — Armatura LLC Armatura One
    • − ICSA-26-274-02 — Monta monta.app
    • − ICSA-26-274-03 — ABB Protection and Control IED Manager PCM600
    • − ICSA-26-274-04 — Johnson Controls EasyIO Neo Series EC and CW Controllers
    • − ICSA-26-274-05 — Johnson Controls EasyIO Neo Series EC and CW Controllers
    • − ICSA-26-274-06 — Meari IoT Cloud Platform OpenAPI Service
    • − ICSA-26-254-01 — CISA Malcolm
    • − ICSA-26-272-06 — MikroTik RouterOS
    • − ICSA-26-272-01 — Lantronix G520 Series Cellular Gateway
    • − ICSA-26-272-02 — Toptech TMS7 and TopHAT
    • − ICSA-26-272-03 — VIVOTEK Camera Firmware

  • Resources +19 −19
    • + CVE-2026-21589 — Atlassian Multiple Products Files or Directories Accessible to External Parties Vulnerability
    • + CVE-2026-76519 — Cisco Secure Email Gateway Relative Path Traversal Vulnerability
    • + CVE-2026-105134 — Ahsay AhsayCBS Command Injection Vulnerability
    • + CVE-2026-105133 — Ahsay AhsayCBS Improper Authentication Vulnerability
    • + CVE-2026-0322 — Palo Alto Networks PAN-OS Code Injection Vulnerability
    • + CVE-2026-96951 — Microsoft Windows Command Injection Vulnerability
    • + CVE-2026-104935 — Ivanti Connect Secure Authentication Bypass by Spoofing Vulnerability
    • + ICSA-26-288-01 — Eclipse Foundation Eclipse Milo
    • + ICSA-26-288-02 — Guangzhou Juan IoT Technology EseeCloud
    • + ICSMA-26-288-01 — Thermo Fisher Torrent Suite Software
    • + ICSMA-26-288-02 — J4Care dcm4che
    • + ICSA-26-281-01 — Red Lion Controls N-Tron 700 Series - Update A
    • + ICSA-26-286-01 — Inductive Automation Ignition Software
    • + ICSA-26-286-02 — Swann Communications SWIFI-SE2KIC
    • + ICSA-26-281-02 — Grid Protection Alliance openPDC and openHistorian
    • + ICSA-26-281-03 — Satel Netco Design
    • + ICSMA-26-223-02 — Pulsetto Vagus Nerve Stimulator (Update A)
    • + ICSA-26-069-02 — Lantronix EDS3000PS and EDS5000 (Update B)
    • + ICSA-25-259-02 — Hitachi Energy RTU500 Series
    • − CVE-2026-53266 — Linux Kernel Out-of-Bounds Write Vulnerability
    • − CVE-2025-39964 — Linux Kernel Race Condition Vulnerability
    • − CVE-2025-39682 — Linux Kernel Improper Check for Unusual or Exceptional Conditions Vulnerability
    • − CVE-2026-87886 — Acronis Backup Incorrect Default Permissions Vulnerability
    • − CVE-2026-76460 — Cisco Identity Services Engine Incorrect Use of Privileged APIs Vulnerability
    • − CVE-2026-58704 — Google Pixel Improper Authorization Vulnerability
    • − CVE-2026-76461 — Cisco Secure Email Gateway SQL Injection Vulnerability
    • − ICSA-26-272-04 — Baicells Nova 430H
    • − ICSA-26-272-05 — Anjvision YSSD-RTMP-H5
    • − ICSA-26-272-07 — Viidure Dashcam Android Application
    • − ICSA-25-168-01 — Siemens Mendix Studio Pro
    • − ICSA-26-267-01 — Botslab G980H Dashcams
    • − ICSA-26-267-02 — Eufy Omni C20, Omni X10 Pro
    • − ICSA-26-258-02 — Wärtsilä FOS-Onboard (Update A)
    • − ICSA-26-209-02 — Siemens Mendix Runtime
    • − ICSA-26-265-01 — lwIP TCP/IP Stack MQTT Client Application
    • − ICSA-26-265-02 — lwIP (Lightweight IP)
    • − ICSA-26-265-03 — Siemens Siveillance Control
    • − ICSA-26-265-04 — Siemens SIPLUS and SIMATIC Products

  • AGENTS.md +19 −10

    https://raw.githubusercontent.com/cyanheads/cisa-cybersecurity-mcp-server/HEAD/AGENTS.md

    − **Version:** 0.3.0− **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.6`− **MCP SDK:** `@modelcontextprotocol/server` ^2.0.0− **Zod:** ^4.6.5− | `cisa_get_advisory` | `csaf-mirror`. `outlineOnOverflow` at `ADVISORY_OUTLINE_BUDGET` (24 KB), `selectSections` on the re-call, and `cves` narrowing `vulnerabilities` below the section level. |− bun run mirror:refresh   # incremental, driven by the changes.csv diff− | `ctx.requestId` | Unique request ID. |− **Recommended: typed error contract.** Declare `errors: [{ reason, code, when, recovery, retryable?, severity?, thrownBy? }]` on `tool()` / `resource()` to receive `ctx.fail(reason, …)` typed against the reason union. TypeScript catches typos at compile time, `data.reason` is auto-populated for observability, linter enforces conformance against the handler body. `recovery` is required (≥ 5 words, lint-validated) — the single source of truth for the agent's next move. Pass `ctx.recoveryFor('reaso−   if (!item) throw ctx.fail('no_match', `No item ${input.id}`, ctx.recoveryFor('no_match'));− **Every release goes through a gated release PR** — `git-wrapup`'s "Release PR mode", mode `gated`. Three separate runs, never one: `git-wrapup` lands the commit stack on `release/<version>`, pushes it, and opens the PR (title = the release commit subject, body = the changelog entry plus a gates section); `release-pr-review` reviews and fixes on that branch (each fix an ordinary commit on top of the stack, pushed plainly — nothing already pushed is ever rewritten, so `main` keeps the record of w+ **Version:** 0.3.2+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.15`+ **MCP SDK:** `@modelcontextprotocol/server` ^2.3.1+ **Zod:** ^4.6.6+ | `cisa_get_advisory` | `csaf-mirror`. `outlineOnOverflow` at `ADVISORY_OUTLINE_BUDGET` (24 KB), `selectSections` on the re-call, `cves` narrowing vulnerabilities, and exact case-sensitive `productIds` narrowing products. Nonempty selectors imply their targets; explicit sections must include them. |+ - KEV snapshots are validated whole before replacement: reject unusable membership rows, duplicate normalized CVEs, and inconsistent envelopes/counts. Failed refreshes retain the last valid membership and Last-Modified; cold failure is retryable `catalog_unavailable`. Sparse optional fields remain supported.+ - Feed reads report `fetchedAt` and `stale` on both surfaces. Refresh failure retains the cached window with safe retry guidance; stale emptiness never establishes current absence. All attempts/backoff share a 45-second deadline; caller cancellation never becomes fallback success.+ - All nine date input filters share `CalendarDateInputSchema` (`z.iso.date()`); preserve output date patterns and handler range-order errors.+ - Transient `SQLITE_BUSY`/`SQLITE_LOCKED` open failures, including extended variants on the cause chain, are `mirror_busy` (`ServiceUnavailable`, retryable). They recover without a restart; listing/completion still degrade to empty and `sources` reports `busy` without the path.+ - A partial refresh retains applied rows and its ingested high-water `checkpoint`, but preserves `lastCompletedAt`, `lastSuccessfulCheckpoint`, and the prior manifest ETag. `sources` reports `partial` and `failedDocumentCount`; document/coverage counts follow row mutations, including another process's partial updates. Refresh rejects a never-completed index under its lease before upstream I/O.+ - Closing cancels pending boot preflight, active sync, and first-seed retries before closing the store. An automatic first seed skipped under contention rechecks with an unref'd delay capped at five seconds until ready or closed; a seed that fails waits for the next scheduled pass instead. Cron `off` does not disable the recheck, while auto-init false does.+ - Preserve definitions from branches, `full_product_names`, and relationships; never synthesize dangling IDs. Relationship references are flat fields and `identificationHelper` is lossless JSON text. Product selection retains whole-document totals and marks `selected` independently of legacy `truncated`.+ - Advisory Markdown escapes upstream text at rendering only; stored and structured strings stay verbatim. Verify literal placeholders through a Markdown parser and retain usable URL destinations.+ bun run mirror:refresh   # requires a completed mirror:init; incremental changes.csv diff+ | `ctx.requestId` | Request ID — the one every log record of the call carries and its error envelope returns as `data.requestId`. |+ **Recommended: typed error contract.** Declare `errors: [{ reason, code, when, recovery, retryable?, severity?, thrownBy? }]` on `tool()` / `resource()` to receive `ctx.fail(reason, …)` typed against the reason union. TypeScript catches typos at compile time, `data.reason` is auto-populated for observability, linter enforces conformance against the handler body. `recovery` is required (≥ 5 words, lint-validated) — the single source of truth for the agent's next move. The framework puts it on the+   if (!item) throw ctx.fail('no_match', `No item ${input.id}`);+ The `mirror:*` commands select `tsconfig.mirror.json`: current source modules in a checkout, compiled modules in published artifacts. Keep that resolver in npm `files`, the bundle, and Docker; the compiler's source-only `tsconfig.json` stays separate.+ **Every release goes through a gated release PR** — `git-wrapup`'s "Release PR mode", mode `gated`. Three separate runs, never one: `git-wrapup` lands the commit stack on `release/<version>`, pushes it, and opens the PR (title = the release commit subject, body = the release digest: theme line, `## Changes`, `## Gates`, changelog link last); `release-pr-review` reviews and fixes on that branch (each fix an ordinary commit on top of the stack, pushed plainly — nothing already pushed is ever rewri

  • server.json 1 field changed
    version
    0.3.1 0.3.2

  • server.json 1 field changed
    version
    0.3.0 0.3.1
  • Resources +15 −15
    • + CVE-2023-22894 — Strapi Cleartext Storage of Sensitive Information Vulnerability
    • + CVE-2021-3199 — ONLYOFFICE Docs Server Path Traversal Vulnerability
    • + CVE-2016-3081 — Apache Struts Command Injection Vulnerability
    • + CVE-2015-5477 — ISC BIND Data Processing Errors Vulnerability
    • + CVE-2015-3306 — ProFTPD Improper Access Control Vulnerability
    • + CVE-2026-88779 — Citrix NetScaler Improper Restriction of Operations within the Bounds of a Memory Buffer Vulnerability
    • + CVE-2026-102490 — Zammad GmbH Zammad Improper Privilege Management Vulnerability
    • + CVE-2026-102489 — Zammad GmbH Zammad Session Fixation Vulnerability
    • + ICSA-26-280-01 — CISA Malcolm
    • + ICSA-26-279-06 — Hitachi Energy RTU500
    • + ICSA-26-279-05 — Hitachi Energy REB500
    • + ICSA-26-279-04 — Hitachi Energy SOI
    • + ICSA-26-279-03 — Hitachi Energy Asset Suite
    • + ICSA-26-279-02 — Savannah lwIP SMTP client
    • + ICSA-26-279-01 — Johnson Controls EasyIO FG
    • − CVE-2026-85706 — GitLab Community Edition and Enterprise Edition Path Traversal Vulnerability
    • − CVE-2026-84869 — ConnectWise ScreenConnect Improper Privilege Management and Missing Authorization Vulnerability
    • − CVE-2026-42018 — JFrog Artifactory Improper Authentication Vulnerability
    • − CVE-2026-42016 — JFrog Artifactory Incorrect Authorization Vulnerability
    • − CVE-2026-86060 — MikroTik RouterOS Improper Neutralization of Argument Delimiters in a Command Vulnerability
    • − CVE-2026-67277 — MikroTik RouterOS Missing Authentication for Critical Function Vulnerability
    • − CVE-2026-87491 — Google Chromium V8 Out of Bounds Write Vulnerability
    • − CVE-2026-20079 — Cisco Firewall Management Center Authentication Bypass Using an Alternate Path or Channel Vulnerability
    • − ICSA-26-265-05 — Siemens Desigo CC family
    • − ICSA-26-265-06 — Siemens Industrial Edge Management
    • − ICSA-26-265-07 — Siemens SIMOVE Fleetmanager and SIPLANT
    • − ICSA-26-265-08 — Siemens WTV676 and WTV776
    • − ICSA-26-265-09 — OpenPLC Runtime v3
    • − ICSA-26-260-07 — Schneider Electric PowerChute Serial Shutdown
    • − ICSA-26-260-06 — ABB Ability Edgenius

  • Resources +27 −27
    • + CVE-2026-104286 — Fortinet FortiMail Path Traversal Vulnerability
    • + CVE-2026-76504 — Cisco Catalyst SD-WAN Manager Hex Encoding Vulnerability
    • + CVE-2026-86950 — Apple Multiple Products Out-of-Bounds Write Vulnerability
    • + CVE-2026-88772 — Citrix NetScaler Improper Restriction of Operations within the Bounds of a Memory Buffer Vulnerability
    • + CVE-2026-88771 — Citrix NetScaler Improper Input Validation Vulnerability
    • + CVE-2026-87902 — WordPress Core Remote File Inclusion Vulnerability
    • + CVE-2026-67279 — Mikrotik RouterOS Improper Enforcement of Behavioral Workflow Vulnerability
    • + CVE-2026-65660 — Microsoft SharePoint Code Injection Vulnerability
    • + ICSA-26-274-01 — Armatura LLC Armatura One
    • + ICSA-26-274-02 — Monta monta.app
    • + ICSA-26-274-03 — ABB Protection and Control IED Manager PCM600
    • + ICSA-26-274-04 — Johnson Controls EasyIO Neo Series EC and CW Controllers
    • + ICSA-26-274-05 — Johnson Controls EasyIO Neo Series EC and CW Controllers
    • + ICSA-26-274-06 — Meari IoT Cloud Platform OpenAPI Service
    • + ICSA-26-254-01 — CISA Malcolm
    • + ICSA-26-272-06 — MikroTik RouterOS
    • + ICSA-26-272-01 — Lantronix G520 Series Cellular Gateway
    • + ICSA-26-272-02 — Toptech TMS7 and TopHAT
    • + ICSA-26-272-03 — VIVOTEK Camera Firmware
    • + ICSA-26-272-04 — Baicells Nova 430H
    • + ICSA-26-272-05 — Anjvision YSSD-RTMP-H5
    • + ICSA-26-272-07 — Viidure Dashcam Android Application
    • + ICSA-25-168-01 — Siemens Mendix Studio Pro
    • + ICSA-26-267-01 — Botslab G980H Dashcams
    • + ICSA-26-267-02 — Eufy Omni C20, Omni X10 Pro
    • + ICSA-26-258-02 — Wärtsilä FOS-Onboard (Update A)
    • + ICSA-26-209-02 — Siemens Mendix Runtime
    • − CVE-2026-19490 — Citrix NetScaler Authentication Bypass Using an Alternate Path or Channel Vulnerability
    • − CVE-2025-25249 — Fortinet Multiple Products Heap-based Buffer Overflow Vulnerability
    • − CVE-2026-86218 — N-able N-central Static Code Injection Vulnerability
    • − CVE-2026-85880 — Microsoft Windows Heap-Based Buffer Overflow Vulnerability
    • − CVE-2026-81963 — Microsoft Windows Link Following Vulnerability
    • − CVE-2026-75650 — Adobe Commerce and Magento Improper Neutralization of Special Elements Used in a Template Engine Vulnerability
    • − CVE-2026-85046 — Google Chromium V8 Type Confusion Vulnerability
    • − CVE-2026-9586 — Sangoma Switchvox SQL Injection Vulnerability
    • − ICSA-26-260-05 — Schneider Electric NetBotz 5 750/755
    • − ICSA-26-260-04 — Schneider Electric Modicon M340 Controller and Communication Modules
    • − ICSA-26-260-03 — Hitachi Energy FACTS Control Platform (FCP)
    • − ICSA-26-260-02 — Mitsubishi Electric GX Works3 and Motion Control Settings
    • − ICSA-26-260-01 — Bransys ELD
    • − ICSA-26-211-07 — Mitsubishi Electric CC-Link IE TSN Communication Protocol (Update A)
    • − ICSA-26-258-08 — CareCam CM2507
    • − ICSA-26-258-07 — Siemens Teamcenter
    • − ICSA-26-258-06 — Siemens Mendix SAML
    • − ICSA-26-258-05 — Siemens Reyrolle 7SR5
    • − ICSA-26-258-04 — Schneider Electric SCADAPack x70 Products
    • − ICSA-26-258-03 — mySCADA myPRO Manager
    • − ICSA-26-258-02 — Wärtsilä FOS-Onboard
    • − ICSA-26-258-01 — Digital Watchdog VMAX DVR and NVR Product Lineups
    • − ICSA-26-197-05 — Siemens SICAM 8
    • − ICSA-26-174-03 — Siemens Products using OpenSSL
    • − ICSA-25-226-22 — Siemens Web Installer
    • − ICSA-25-226-05 — Siemens IAM Client
    • − ICSA-25-135-18 — Siemens SCALANCE LPE9403