Find devices exposed to a security advisory with an AI agent and rConfig MCP
A vendor publishes a critical advisory at 16:00. The first thing management asks is “how many of ours are affected?” Many advisories only bite when a particular feature is enabled, and that is written in the configuration. rConfig already holds the configuration for every device, so an agent connected over MCP can answer from stored configs in minutes, without logging in to a single device.
Best for: first-hour advisory response, audit questions about exposure, re-checking after remediation.
Tools: rConfig. Optional: NetBox or Nautobot for platform and software version, a ticketing MCP server for follow-up.
rConfig tools used: get_devices, search_configs, get_device.
How it flows
flowchart LR
ADV["Advisory<br/>feature + versions + mitigations"] --> A["Agent"]
A -- "get_devices<br/>(vendor, group)" --> R["rConfig MCP"]
A -- "search_configs<br/>(feature lines)" --> R
A -- "search_configs<br/>(command: show version)" --> R
A --> T["Classified device list<br/>exposed / mitigated / not enabled / unknown"]
Worked example: Cisco IOS XE web UI
Cisco advisory cisco-sa-iosxe-webui-privesc-j22SaA4z (CVE-2023-20198) affects IOS XE devices with the web UI enabled. Per the advisory:
- The web UI is enabled by
ip http serverorip http secure-server. Cisco’s own check isshow running-config | include ip http server|secure|active. - With
ip http serverpresent, the device is not exploitable over HTTP if the config also containsip http active-session-modules none. The HTTPS equivalent isip http secure-active-session-modules none. - The workaround is
no ip http serverandno ip http secure-server.
Always take the conditions from the vendor’s current advisory, not from this page. Advisories are revised.
The prompt
Give the agent the conditions, the classification you want, and the evidence rules:
Using rConfig, find Cisco IOS XE devices exposed to cisco-sa-iosxe-webui-privesc-j22SaA4z. Search the latest configs for “ip http server”, “ip http secure-server” and “active-session-modules none”. Matches are literal, so “no ip http server” also matches: read each line before classifying. Classify every Cisco device as Exposed (HTTP or HTTPS server on without the matching active-session-modules none), Mitigated, Not enabled, or Unknown (no backup, or no match). Give a table with device, group, classification, the evidence lines and last_config_at.
What the agent does
- Scopes the estate with
get_devicesfiltered by vendorCisco. Device records carry name, model, group, tags andlast_config_at, but not software version. - Searches for the feature with
search_configsfor each string. Each call scans the latest config per device and returns up to 20 matching lines per config, with line numbers. - Separates IOS XE from classic IOS. If rConfig collects
show version,search_configswithcommandset toshow versionand a query such asIOS XEsorts the devices. Otherwise the model field or your source of truth does. - Classifies each device from the matched lines and reports the evidence.
An illustrative result:
Device Group Class Evidence Backupdub-edge-01 Edge Exposed ip http secure-server today 03:00dub-edge-02 Edge Mitigated ip http secure-server today 03:00 ip http secure-active-session-modules nonelon-acc-14 Access Not enabled no ip http server; no ip http secure-server today 03:00par-wan-03 WAN Unknown no config backup in 41 days 2026-09-27Limits to know
- Literal matching.
search_configsmatches a substring, case-insensitively by default. It isn’t a regular expression and doesn’t understand negation, which is why the prompt tells the agent to read each line. - Absence is not proof. A default-on feature may not appear in the running config at all, depending on platform and version. A device with an old or failed backup has no current evidence. Those devices go in Unknown, not Not enabled.
- Scan limits on large estates. One search checks the latest config per device, up to 500 configs, and stops after about 5 seconds. If the result says the scan was truncated, the agent should narrow by group or vendor and repeat. See What the MCP server exposes.
- Secrets are obfuscated. It makes no difference here, but an advisory that hinges on a password or key value can’t be checked from MCP output.
- Version-only advisories. If exposure depends only on software version, the answer comes from
show versionoutput or your source of truth, not from the feature search.
From list to fix
- Remediation stays in your change process. The agent can draft the commands per device (here,
no ip http serverandno ip http secure-serverwhere the web UI isn’t needed). An engineer reviews and applies them. - Keep checking automatically. A one-off search answers today’s question. A policy in rConfig flags any device that drifts back. The Policy Library shows how to write must-contain and must-not-contain rules, and with Run on backup turned on, the policy is evaluated after every backup.
- Re-run after remediation. Once devices have been fixed and backed up again, run the same prompt. Unknowns that remain are devices to chase.
Variations
- Source of truth for versions. With the NetBox or Nautobot MCP server connected, the agent takes platform and software version from there and the feature check from rConfig. See Using rConfig with other MCP servers.
- Other vendors. The same method works for Juniper, Fortinet, Palo Alto and Arista advisories that depend on a configured service: management interfaces, SSL VPN portals, legacy protocols.
- Ticket per affected device. With a ticketing MCP server that allows creating issues, the agent can open one ticket per exposed device. Keep that write access on the ticketing side; rConfig stays read-only.
Related reference
Frequently asked questions
Can an AI agent check which network devices are affected by a CVE?
For advisories that depend on a configured feature, yes. Connected to rConfig over MCP, the agent searches every stored config for the feature and its mitigations and classifies each device. Advisories that depend only on software version need the version from show version output or your source of truth.
Does searching for 'ip http server' also match 'no ip http server'?
Yes. rConfig's search_configs tool matches a literal substring, so the agent must read each matched line and classify it. Tell it to do so in the prompt.
Is a device with no matching line safe?
Not necessarily. Some features are on by default and don't appear in the running config, and a device with no recent backup has no evidence at all. Treat 'no match' as 'not shown in the stored config' and confirm defaults for the platform and version.
Can the agent fix the affected devices?
No. rConfig's MCP server is read-only. The agent produces the list and the remediation commands as text; engineers apply them through your change process.