CVE-2026-7473 — Arista EOS Tunnel Decapsulation Bypass
Executive Summary
CVE-2026-7473 is an incomplete-comparison / missing-factor flaw (CWE-697) in Arista Extensible Operating System (EOS). On a switch configured as a tunnel endpoint, EOS does not verify the tunnel protocol type before decapsulating. Any packet whose destination IP matches the configured decapsulation IP is decapsulated and forwarded — even if it carries a tunnel protocol the device was never configured to terminate (e.g., a GRE or IP-in-IP packet hitting a VXLAN VTEP IP).
The defensive consequence is what matters: an attacker who can route a crafted outer packet to the decap IP can inject inner packets directly onto internal segments behind the switch, bypassing the segmentation/ACL boundary the tunnel endpoint was supposed to enforce. This turns a routing/edge device into an unintended ingress path into "unreachable" internal networks.
Arista confirms exploitation in the wild; CISA added it to the KEV catalog on 2026-06-09 with a two-week federal remediation deadline. No software patch is planned — fixing it risks breaking live tunnel deployments — so remediation is configuration-only (ACLs) or device retirement. Affected: 7020R, 7280R/R2, 7500R/R2 fully; 7280R3/7500R3/7800R3 for IP-in-IPv6 and GUEv6 decap-group cases.
Telemetry reality: This is a network-infrastructure flaw. CrowdStrike Falcon has no endpoint sensor on the switch itself. The hunt therefore targets consequences on managed hosts — inbound connections from sources that should have been segmented away, traffic to/from internal hosts behind the affected switch, lateral movement and recon originating from newly-reachable segments — plus Arista syslog (VXLAN/GRE/decap config + ACL-deny events) where Next-Gen SIEM ingests it.
Defender priority: Treat every device with an active VXLAN VTEP, GRE tunnel, or decap-group as an open segmentation hole until a protocol-pinning ACL is applied. Apply the upstream/decap ACLs (Section 12), then hunt for hosts behind those VTEPs receiving connections from sources that have no legitimate path to them (Section 8, Q1–Q4).
Source Review & Web Hunter Notes
| Tier | Source | Key Finding | Carry Fwd |
|---|---|---|---|
| 1 · Vendor | Arista Security Advisory 0137 | Root cause (no tunnel-protocol-type check), affected series, show-command detection, two ACL mitigation approaches, CVSSv3.1 5.8 / v4.0 6.8, no patch planned | yes |
| 1 · Gov | CISA KEV (2026-06-09) | Added to KEV; exploited ITW; 2-week federal due date | yes |
| 2 · Press | SecurityWeek — "No Patch Planned…" | Two mitigation approaches (upstream ACL / decap-device ACL), retire-or-mitigate guidance, exploited ITW confirmed | yes |
| 2 · Press | The Hacker News — CISA KEV roundup | CVSS 6.9; affected 7020R / 7280R/R2 / 7500R/R2; "incomplete comparison with missing factors" | yes |
| 2 · Press | SecurityAffairs — CISA KEV article | Grouped with Cisco Catalyst SD-WAN & Chromium V8 in same KEV batch; ITW exploitation | partial |
| 3 · Aggregator | CIRCL Vulnerability-Lookup / Intruder cvemon | CVE metadata, CWE-697, cross-reference of affected configs (VXLAN / GRE / GUE / IP-in-IP / NVGRE) | partial |
Intel gaps: No public IOCs, no named threat actor, no exploit PoC, and no discoverer attribution were published. There are no atomic indicators (hashes/domains/IPs) for this flaw — exploitation is a crafted packet, not a payload. The hunt is therefore behavioral / consequence-driven, and the IOC appendix uses config-state and behavioral signatures rather than file hashes.
Hunt Brief & Attack Chain
Hunt hypotheses (high-fidelity first)
- H1 — Newly-reachable internal hosts (high): Hosts on segments that sit behind an affected VTEP/decap IP begin receiving inbound connections from source IPs/zones that previously had no route to them. Falcon
NetworkConnectIP4on those hosts shows new remote peers crossing the segmentation boundary. - H2 — Recon from a newly-reachable segment (high): A host behind the switch is the target of port-scan / sweep behavior (many distinct destination ports or many internal hosts touched from one external/cross-segment source) shortly after the decap path opens.
- H3 — Inbound admin/SMB/RDP from out-of-policy source (high): Listening services (SMB 445, RDP 3389, WinRM 5985/5986, SSH 22) on internal hosts accept inbound sessions from source addresses outside the expected management plane.
- H4 — Lateral movement fan-out from a beachhead (medium): The first host reached via the decap path begins authenticating outward to multiple internal peers (T1021), indicating the injected access is being used to pivot.
- H5 — Arista config-change / decap enablement (medium, NGSIEM): Syslog from EOS shows a new/changed
interface Vxlan,interface Tunnel, orip decap-group— a fresh decap endpoint is a fresh exposure that must be ACL-pinned immediately. - H6 — Mitigation-ACL deny hits (medium, NGSIEM): Once protocol-pinning ACLs are deployed (Section 12),
counters per-entrydeny-rule hits on the decap IP are direct evidence of attempted exploitation of the wrong-protocol path.
Attack chain
| Step | Telemetry | Hunt Angle |
|---|---|---|
| 1 · Recon for a decap endpoint (VTEP/GRE/decap IP reachable) | Arista syslog / netflow (no Falcon) | Inventory active VTEPs & decap-groups; treat each as exposure (H5) |
| 2 · Craft outer packet w/ unexpected tunnel proto → decap IP | None on switch (Falcon blind) | Honest gap — detect by consequence, not the packet |
| 3 · Switch decapsulates & forwards inner packet to internal segment | Mitigation-ACL deny counters (if deployed) | ACL deny hits on decap IP = attempted exploit (H6) |
| 4 · Inner packet reaches host that should be unreachable | NetworkConnectIP4 on downstream host | Inbound from out-of-policy source/zone (H1, H3) |
| 5 · Recon & service discovery from new vantage | NetworkConnectIP4, NetworkListenIP4 | Port/host sweep into the segment (H2) |
| 6 · Lateral movement / pivot | NetworkConnectIP4, UserLogon | Outbound fan-out + remote logons from beachhead (H4) |
Consolidated IOC Table
No atomic IOCs (hashes / domains / IPs) are published for CVE-2026-7473 — exploitation is a crafted packet, not malware. The "indicators" below are config-state and behavioral. Populate the host/segment placeholders from your own network inventory.
| Type | Value / Pattern | Conf | Action | Context |
|---|---|---|---|---|
| config-state | Active VXLAN VTEP — show interfaces vxlan 1 shows "active with <IP>" | high | hunt | Vulnerable decap endpoint; inventory & ACL-pin |
| config-state | Active GRE tunnel — show interfaces Tunnel0 active source/dest | high | hunt | Vulnerable decap endpoint |
| config-state | Populated show ip decap-group (GUE / IP-in-IP / NVGRE) | high | hunt | Vulnerable decap endpoint |
| behavioral | Inbound connection to host-behind-VTEP from out-of-policy source zone | medium | hunt | Segmentation bypass consequence (H1/H3) |
| behavioral | Port/host sweep into a segment that sits behind a decap endpoint | medium | hunt | Recon from newly-reachable vantage (H2) |
| log-event | Mitigation-ACL deny counter incrementing on decap IP | high | detect | Direct evidence of wrong-protocol decap attempt (H6) |
| log-event | EOS config change adding Vxlan/Tunnel/decap-group | medium | hunt | New exposure to triage (H5) |
Affected Surface & Telemetry Matrix
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| Arista switch (7020R / 7280R/R2 / 7500R/R2) — decap endpoint | EOS syslog → NGSIEM (config, ACL counters) | CRITICAL | HIGH — no Falcon sensor; depends on syslog ingest |
| 7280R3 / 7500R3 / 7800R3 (IP-in-IPv6 / GUEv6 decap-group) | EOS syslog → NGSIEM | HIGH | HIGH |
| Internal hosts behind the affected VTEP/segment | NetworkConnectIP4, NetworkListenIP4 | CRITICAL | MED — needs Falcon on downstream hosts |
| Identity plane (logons to newly-reached hosts) | UserLogon, UserLogonFailed | HIGH | LOW |
| Edge / firewall in front of decap IP | Firewall / netflow logs → NGSIEM | HIGH | MED — protocol-level visibility varies |
The single most valuable instrumentation step is ensuring EOS syslog ships to Next-Gen SIEM and that Falcon sensors are deployed on the hosts that live behind each VTEP/decap segment. Without one of those two, the switch-side exploit is invisible and only late-stage lateral movement remains detectable.
ATT&CK Mapping
| Tactic | Technique | Observed Behavior | Query / Control |
|---|---|---|---|
| Initial Access | T1190 · Exploit Public-Facing Application | Crafted tunnel packet to decap IP triggers unintended decapsulation | Q6 (ACL deny) · Section 12 ACLs |
| Defense Evasion | T1599 · Network Boundary Bridging | Wrong-protocol decap bridges across a segmentation boundary | Q1–Q4 · upstream/decap ACLs |
| Defense Evasion | T1599.001 · Network Address Translation Traversal | Tunnel decap delivers inner packets past the perimeter mapping | Q1, Q3 |
| Discovery | T1046 · Network Service Discovery | Port/host sweep from a newly-reachable vantage | Q2 |
| Lateral Movement | T1021 · Remote Services (SMB/RDP/SSH/WinRM) | Inbound admin protocols from out-of-policy source; outward pivot | Q3, Q4, Q5 |
| Lateral Movement | T1210 · Exploitation of Remote Services | Beachhead host attacks downstream peers | Q4 |
| Persistence (infra) | T1542 · Pre-OS / Network-device config | New Vxlan/Tunnel/decap-group config = persistent exposure | Q7 · config-change hunt |
Native Audit-Log Hunts (non-CQL)
On the Arista switch (EOS CLI)
Run these to confirm whether a device is a vulnerable decap endpoint (per Advisory 0137):
! Is there an active VXLAN VTEP? show interfaces vxlan 1 ! vulnerable if "active with <IP>" ! Active GRE tunnel? show interfaces Tunnel0 ! vulnerable if active source & destination ! Decap groups (GUE / IP-in-IP / NVGRE)? show ip decap-group ! After deploying mitigation ACLs, watch the deny counters: show ip access-lists foo ! non-zero deny-rule hits = attempted exploit
Firewall / netflow (upstream of the decap IP)
- Hunt for inbound packets to the decap IP carrying a tunnel protocol other than the one the device is configured to terminate (e.g., GRE/proto-47 or IP-in-IP/proto-4 to a VXLAN/UDP-4789 VTEP).
- Baseline expected source ranges for legitimate tunnel traffic; alert on decap-IP traffic from outside that set.
Arista syslog (if not yet in NGSIEM)
- Grep for config-session commits adding
interface Vxlan,interface Tunnel, orip decap-group. - Grep for ACL log entries on the decap IP once logging is enabled on the deny rule.
CrowdStrike LogScale CQL Hunt Queries
These hunts run on downstream host telemetry and (Q6/Q7) on Arista syslog parsed into Next-Gen SIEM. Replace REPLACE_WITH_* placeholders with your VTEP/decap IPs, the CIDR(s) sitting behind each VTEP, and your legitimate management-source ranges. The switch itself has no Falcon sensor — see the Coverage Map (Section 15) for the honest gaps.
Looks for: inbound connections landing on hosts that sit behind an affected VTEP/decap segment, sourced from IPs outside the ranges that legitimately have a route to that segment — the core segmentation-bypass consequence. FP: legitimate new peers, monitoring scanners, and backup/replication hosts — exclude known management ranges and scanner AIDs.
// HUNT: Inbound to behind-VTEP host from out-of-policy source // MITRE: T1599, T1599.001 // CONF: medium FP: medium COST: medium | REQUIRES: NetworkConnectIP4 on downstream hosts // FALSE POSITIVES: new legitimate peers, vuln scanners, backup/replication sources // TUNING: keep REPLACE_WITH_SEGMENT_CIDR tight to the hosts behind the VTEP; widen the allow-list as legit sources are confirmed #event_simpleName=NetworkConnectIP4 | ConnectionDirection=1 | in(field="LocalAddressIP4", values=[REPLACE_WITH_SEGMENT_CIDR]) | RemoteAddressIP4=* RemoteAddressIP4!=10.* RemoteAddressIP4!=192.168.* | RemoteAddressIP4!=REPLACE_WITH_ALLOWED_SRC_CIDR | groupBy([RemoteAddressIP4, LocalAddressIP4, RemotePort, aid, ComputerName], function=count(as=hits)) | sort(hits, order=desc, limit=200) | table([RemoteAddressIP4, LocalAddressIP4, RemotePort, ComputerName, aid, hits], limit=200)
Looks for: one remote source touching many distinct ports/hosts inside a segment behind the decap endpoint within a short window — port/host scanning from a newly-reachable vantage. FP: authorized vulnerability scanners and asset-discovery tools — exclude their source IPs/AIDs.
// HUNT: Recon sweep into a behind-VTEP segment // MITRE: T1046 // CONF: high FP: medium COST: medium | REQUIRES: NetworkConnectIP4 on downstream hosts // FALSE POSITIVES: authorized vuln scanners, NMS asset discovery // TUNING: exclude scanner source IPs; raise distinct-port/host thresholds to fit baseline #event_simpleName=NetworkConnectIP4 | ConnectionDirection=1 | in(field="LocalAddressIP4", values=[REPLACE_WITH_SEGMENT_CIDR]) | RemoteAddressIP4!=REPLACE_WITH_SCANNER_CIDR | groupBy([RemoteAddressIP4], function=[count(LocalAddressIP4, as=distinct_hosts, distinct=true), count(RemotePort, as=distinct_ports, distinct=true), count(as=conns)]) | distinct_hosts >= 10 OR distinct_ports >= 20 | sort(distinct_hosts, order=desc, limit=100) | table([RemoteAddressIP4, distinct_hosts, distinct_ports, conns], limit=200)
Looks for: inbound management-protocol sessions (445/3389/22/5985/5986) to behind-VTEP hosts from sources outside the management plane. FP: jump hosts and admin workstations — exclude the management-source CIDR.
// HUNT: Inbound admin protocols from out-of-policy source // MITRE: T1021 // CONF: high FP: medium COST: low | REQUIRES: NetworkConnectIP4 on downstream hosts // FALSE POSITIVES: jump boxes, admin workstations, patch/management servers // TUNING: maintain REPLACE_WITH_MGMT_CIDR as the only authorized admin-source set #event_simpleName=NetworkConnectIP4 | ConnectionDirection=1 | in(field="LocalAddressIP4", values=[REPLACE_WITH_SEGMENT_CIDR]) | in(field="RemotePort", values=["445","3389","22","5985","5986"]) | RemoteAddressIP4!=REPLACE_WITH_MGMT_CIDR | groupBy([RemoteAddressIP4, LocalAddressIP4, RemotePort, ComputerName, aid], function=count(as=hits)) | sort(hits, order=desc, limit=200) | table([RemoteAddressIP4, LocalAddressIP4, RemotePort, ComputerName, aid, hits], limit=200)
Looks for: a host inside the behind-VTEP segment initiating outbound connections to many internal peers on admin ports — the pivot stage after the injected access is used. FP: domain controllers, config-management and monitoring agents that legitimately fan out — exclude those AIDs.
// HUNT: Lateral fan-out from a behind-VTEP beachhead // MITRE: T1021, T1210 // CONF: medium FP: medium COST: medium | REQUIRES: NetworkConnectIP4 on downstream hosts // FALSE POSITIVES: DCs, SCCM/Ansible, monitoring agents (naturally fan out) // TUNING: exclude known fan-out server AIDs; tune distinct-peer threshold to baseline #event_simpleName=NetworkConnectIP4 | ConnectionDirection=0 | in(field="LocalAddressIP4", values=[REPLACE_WITH_SEGMENT_CIDR]) | in(field="RemotePort", values=["445","3389","22","5985","5986","135"]) | groupBy([aid, ComputerName], function=[count(RemoteAddressIP4, as=distinct_peers, distinct=true), count(as=conns)]) | distinct_peers >= 8 | sort(distinct_peers, order=desc, limit=100) | table([ComputerName, aid, distinct_peers, conns], limit=200)
Looks for: network logons (LogonType 3/10) on behind-VTEP hosts — pair with Q1/Q3 hits to confirm an out-of-policy remote source produced an actual authenticated session. FP: routine network logons are common — this is a correlation/triage hunt, not a standalone alert.
// HUNT: Remote logon to behind-VTEP host (correlate with Q1/Q3) // MITRE: T1021 // CONF: medium FP: medium COST: low | REQUIRES: UserLogon on downstream hosts // FALSE POSITIVES: normal network/RDP logons abound; use only to corroborate a flagged source // TUNING: scope ComputerName to the behind-VTEP host list; join to Q1/Q3 timeframe #event_simpleName=UserLogon | in(field="LogonType", values=["3","10"]) | in(field="ComputerName", values=[REPLACE_WITH_BEHIND_VTEP_HOSTS]) | groupBy([ComputerName, UserName, LogonType, RemoteAddressIP4], function=count(as=logons)) | sort(logons, order=desc, limit=200) | table([ComputerName, UserName, LogonType, RemoteAddressIP4, logons], limit=200)
Looks for: EOS syslog ACL-deny events on the decap IP after the protocol-pinning ACLs from Section 12 are deployed — a deny hit means a wrong-protocol packet was aimed at the decap path. This is the highest-fidelity exploit signal available. Requires: Arista syslog ingested into Next-Gen SIEM and a parser exposing the ACL/rule fields.
// HUNT: Arista mitigation-ACL deny hits on decap IP // MITRE: T1190, T1599 // CONF: high FP: low COST: low | REQUIRES: EOS syslog in NGSIEM (ACL deny logging enabled) // FALSE POSITIVES: misconfigured ACL denying legitimate co-resident traffic (BGP/SSH on same IP) // TUNING: ensure the ACL explicitly permits legit co-resident protocols before relying on deny=malicious #repo=* | @rawstring=/%(ACL|SECURITY)-\d-[A-Z_]*DENY/ | @rawstring=/(?<dst>REPLACE_WITH_DECAP_IP)/ | @rawstring=/(?<proto>gre|ipinip|ip-in-ip| proto \d+|udp)/i | groupBy([dst, proto], function=count(as=denies)) | sort(denies, order=desc, limit=100) | table([dst, proto, denies], limit=200)
Looks for: EOS config-session syslog adding interface Vxlan, interface Tunnel, or ip decap-group — each is a fresh decap exposure that must be ACL-pinned the same day. FP: planned network changes — route to a change-control review rather than alerting blind.
// HUNT: EOS config change adding a decap endpoint // MITRE: T1542 // CONF: medium FP: low COST: low | REQUIRES: EOS config syslog in NGSIEM // FALSE POSITIVES: approved network changes; correlate against change tickets // TUNING: suppress events whose source user/session matches an approved change window #repo=* | @rawstring=/(interface Vxlan|interface Tunnel\d+|ip decap-group)/i | @rawstring=/(CONFIG|SESSION|cmd=)/i | groupBy([@host, @rawstring], function=count(as=hits)) | sort(hits, order=desc, limit=100) | table([@host, @rawstring, hits], limit=200)
CrowdStrike Custom IOA Recommendations
Custom IOAs operate on endpoint sensor behavior. Because the switch has no Falcon sensor and the exploit is a network packet, there is no clean IOA pattern for the exploit itself. IOAs here target the downstream consequence and should be promoted only after the network hunts (Q1–Q4) are baselined.
| Candidate | Source query | Pattern | Promotion path |
|---|---|---|---|
| Inbound admin protocol from out-of-policy source | Q3 | Network IOA: inbound 445/3389/22/5985 to behind-VTEP host CIDR from outside mgmt CIDR | Pilot in Detect-only on the segment; tune mgmt allow-list 2 weeks before block |
| Lateral fan-out from beachhead | Q4 | Behavioral: single host → many internal admin-port peers in a short window | Detect-only; align threshold to baseline; do not block (FP on DC/SCCM) |
All remaining queries (Q1, Q2, Q5, Q6, Q7) are investigate-only hunt / scheduled-search detections — run on a schedule and triage hits; they are not IOA-promotable.
Machine-Readable IOC Appendix
No atomic file/domain/hash IOCs exist for this flaw. The quick-copy blocks below are the operational equivalents: config-state checks, behavioral signatures, the mitigation-ACL audit, and a Falcon IOC-Management CSV scaffold for any campaign infrastructure you later attribute to exploitation.
show interfaces vxlan 1 # active with <IP> => vulnerable show interfaces Tunnel0 # active source/dest => vulnerable show ip decap-group # any group => vulnerable (GUE/IPinIP/NVGRE) show ip access-lists foo # deny-rule hits => attempted exploit
SIG1 inbound to behind-VTEP host from source outside allowed CIDR SIG2 single source touches >= 10 hosts OR >= 20 ports in a behind-VTEP segment SIG3 inbound 445/3389/22/5985/5986 from outside mgmt CIDR SIG4 behind-VTEP host fans out to >= 8 internal admin-port peers SIG5 EOS ACL deny on decap IP (wrong-protocol packet)
# Every active VTEP/GRE/decap IP MUST have a protocol-pinning ACL. # VXLAN-only example (permit UDP 4789, deny all else to decap IP): ip access-list foo counters per-entry 1 permit udp any host REPLACE_WITH_DECAP_IP eq 4789 2 deny ip any host REPLACE_WITH_DECAP_IP 3 permit ip any any # NOTE: explicitly permit BGP/SSH first if the IP is multi-use.
type,value,action,severity,expiration,description,tags ipv4,REPLACE_WITH_ATTACKER_SRC,detect,high,2026-09-15,CVE-2026-7473 decap exploit source,campaign:AristaDecap ipv4,REPLACE_WITH_DECAP_IP,enrich,medium,2026-07-15,Arista decap endpoint (asset),campaign:AristaDecap
Detection Validation Gates
| Gate | Check | Pass criteria |
|---|---|---|
| Telemetry ready | Falcon on behind-VTEP hosts; EOS syslog in NGSIEM | NetworkConnectIP4 present for the segment AID set; EOS ACL/config events parsing |
| Benign baseline | Run Q1–Q4 over 7–14 days, no allow-lists | Allowed-source / scanner / mgmt CIDRs and fan-out AIDs identified and added to TUNING lines |
| Positive test | From a controlled host outside the allowed CIDR, connect to a behind-VTEP host on 3389/445 | Q1 and Q3 surface the test connection |
| Positive test (ACL) | Send a non-configured tunnel proto packet to a test decap IP after ACL deployed | Q6 / show ip access-lists shows a deny-counter increment |
| Promotion | Q3 → Network IOA Detect-only | < 1 FP/host/week sustained for 2 weeks before any block action |
Hardening — Tiered & Deployable
- Apply protocol-pinning ACLs on every active VTEP / GRE tunnel / decap-group IP — permit only the configured tunnel protocol+port, deny all other traffic to the decap IP, then permit the rest. Authority: Arista Advisory 0137; MITRE M1037 (Filter Network Traffic). approach 1: upstream ACL · approach 2: decap-device ACL
- Explicitly permit co-resident protocols (BGP, SSH) first if the decap IP is multi-use — otherwise the deny rule will black-hole control-plane traffic.
- Enable deny-rule logging /
counters per-entryso attempted exploitation is visible (feeds Q6). MITRE M1047 (Audit).
- Dedicate decap IPs to tunnel traffic only (remove BGP/SSH/mgmt from the loopback/SVI used as the VTEP source) so the deny rule is unambiguous. MITRE M1030 (Network Segmentation).
- Ship EOS syslog to Next-Gen SIEM with a parser exposing ACL + config-session fields (enables Q6/Q7). MITRE M1047.
- Deploy decap-device ACLs (UDF/MAC ACL + TCAM profile) on platforms where upstream filtering is impractical — note this consumes TCAM and on 7020R/7280R/7500R may require dropping MPLS features. Pilot on one device first. ⚠ TCAM profile change — schedule maintenance window
- Retire or replace affected R/R2-series devices that cannot be adequately ACL-mitigated — Arista's own fallback guidance, since no patch will ever ship. MITRE M1030.
- Defense-in-depth segmentation: do not rely on the tunnel endpoint as the only boundary — enforce host-based firewalls and downstream ACLs so a decap bypass does not equal flat internal access. MITRE M1030 / M1031.
- Falcon coverage on behind-VTEP hosts — close the visibility gap so consequence-detection (Q1–Q5) actually has telemetry.
Deployable Playbooks
Playbook A — Upstream ACL (Approach 1), VXLAN-only example
# On the upstream switch/router in front of the decap IP. # Permit only legitimate VXLAN (UDP 4789); deny everything else to decap IP. ip access-list foo counters per-entry 1 permit udp any host REPLACE_WITH_DECAP_IP eq 4789 2 deny ip any host REPLACE_WITH_DECAP_IP 3 permit ip any any ! # GRE-only variant: ip access-list gre-pin counters per-entry 1 permit gre any host REPLACE_WITH_GRE_DECAP_IP 2 deny ip any host REPLACE_WITH_GRE_DECAP_IP 3 permit ip any any ! # Bind the ACL to the ingress interface(s) facing untrusted networks: interface Ethernet1 ip access-group foo in
Playbook B — Decap-device MAC/UDF ACL (Approach 2), 7280R/7500R VXLAN v4
# Requires a TCAM profile with UDF key fields (consumes TCAM; may drop MPLS).
hardware tcam
profile tunnelpin copy default
feature acl port mac
no key size limit
key field udf-16b-1 udf-16b-2 udf-32b-1
no feature mpls
!
mac access-list payload alias ip-next-protocol-udp offset 2 pattern 0x00110000 mask 0xff00ffff
mac access-list payload alias ip-dip-decap-ip offset 4 pattern 0xREPLACEHEX mask 0x00000000
mac access-list payload alias udp-dport-vxlan offset 5 pattern 0x000012b5 mask 0xffff0000
!
mac access-list foo
counters per-entry
1 permit any any ip payload alias ip-next-protocol-udp alias ip-dip-decap-ip alias udp-dport-vxlan
2 deny any any ip payload alias ip-dip-decap-ip
3 permit any any
Playbook C — Verify & monitor
# Confirm the ACL is bound and counting: show ip access-lists foo # Confirm which decap endpoints still exist: show interfaces vxlan 1 show interfaces Tunnel0 show ip decap-group # Forward syslog to NGSIEM (so Q6/Q7 fire): logging host REPLACE_WITH_SIEM_COLLECTOR logging level ACL informational
Do not deploy blind: if the decap IP also carries BGP/SSH/management, add explicit permit rules for those protocols above the deny rule, or you will break the control plane. Pilot on one device in a maintenance window.
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Apply the upstream/decap protocol-pinning ACL (Playbook A/B) to every active VTEP/GRE/decap IP. If a device cannot be ACL-pinned and is suspected exploited, restrict its ingress at the next-hop firewall. | Network Eng | show ip access-lists bound + counting |
| Scope | Enumerate all active decap endpoints (state check, Section 7). For each, list the behind-VTEP host CIDR and run Q1–Q4 over the lookback window to find hosts that received out-of-policy inbound traffic. | SOC / Network | Q1–Q4 result sets, VTEP inventory |
| Eradicate | For any host confirmed reached via the decap path: triage with Q5 (logons) + standard host IR; reset credentials used in flagged logons; remove any attacker footholds discovered. | IR | Host timelines, logon records |
| Recover | Dedicate decap IPs to tunnel-only use; confirm syslog/Falcon coverage; keep ACL deny logging on as a tripwire (Q6). | Network / SOC | Clean Q6 baseline, syslog flowing |
| Strategic | Schedule retirement/replacement of devices that cannot be safely ACL-mitigated; enforce downstream/host segmentation so the endpoint is not the sole boundary. | Architecture | Remediation plan / change tickets |
Detection Coverage Map
| Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1190 (exploit) | Crafted wrong-protocol packet to decap IP | Q6 (post-ACL only) | — | GAP — no on-switch telemetry; only deny-counters after ACL |
| T1599 / .001 | Decap bridges segmentation boundary | Q1, Q3 | Q3 | Partial — depends on behind-VTEP Falcon + tight CIDRs |
| T1046 | Recon sweep from new vantage | Q2 | — | Good |
| T1021 | Inbound admin / remote logon | Q3, Q5 | Q3 | Good |
| T1210 | Lateral fan-out / pivot | Q4 | Q4 | Partial — FP-prone; Detect-only |
| T1542 | New decap endpoint config | Q7 | — | Partial — needs EOS config syslog in NGSIEM |
Honest gaps: the exploit itself (attack-chain step 2) occurs entirely on the switch, where Falcon has no sensor — it is undetectable until it produces a downstream consequence or hits a mitigation-ACL deny counter. All host-side hunts assume Falcon sensors exist on the behind-VTEP segment and that you can enumerate that host/CIDR set; where you cannot, those rows drop to GAP. EOS syslog ingest into Next-Gen SIEM is the single dependency that unlocks Q6/Q7. Validation gates (Section 11) must pass — especially benign baselining of Q1–Q4 — before any promotion to alerting.
Hunt Summary Ticket
TITLE: Hunt — CVE-2026-7473 Arista EOS tunnel-decap segmentation bypass
SEVERITY: High (CVSS ~6.9; CISA KEV; exploited ITW; no patch)
SCOPE: Arista 7020R / 7280R(R2/R3) / 7500R(R2/R3) / 7800R3 with active
VXLAN VTEP, GRE tunnel, or ip decap-group + hosts behind them
HYPOTHESIS: Wrong-protocol decap injects packets onto internal segments,
bypassing the tunnel-endpoint boundary; detect by consequence on
downstream hosts + EOS ACL/config syslog.
QUERIES: Q1 out-of-policy inbound Q2 recon sweep Q3 inbound admin proto
Q4 lateral fan-out Q5 remote logon Q6 ACL deny Q7 config change
DO FIRST: 1) Inventory active decap endpoints (Section 7 show-commands)
2) Apply protocol-pinning ACLs (Section 12/13) — permit co-resident
BGP/SSH first 3) Enable deny logging 4) Run Q1-Q4 baseline
FINDINGS: <populate>
GAPS: Switch-side exploit invisible to Falcon; needs EOS syslog in NGSIEM
and Falcon on behind-VTEP hosts
ACTIONS: ACL-pin all decap IPs; dedicate decap IPs; plan retirement of
un-mitigable devices; promote Q3 to Detect-only IOA after baseline
OWNER: HuntPack
VERSION: v0.2 (2026-06-15)
Changelog
table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.References
| Tier | Source | Used For | Accessed |
|---|---|---|---|
| 1 · Vendor | Arista Security Advisory 0137 | Root cause, affected series, show-commands, ACL mitigations, CVSS, no-patch decision | 2026-06-15 |
| 1 · Gov | CISA Known Exploited Vulnerabilities Catalog | KEV listing (2026-06-09), ITW exploitation, federal deadline | 2026-06-15 |
| 2 · Press | SecurityWeek — No Patch Planned for Exploited Arista EOS Vulnerability | Two mitigation approaches, retire-or-mitigate guidance | 2026-06-15 |
| 2 · Press | The Hacker News — CISA Adds Cisco, Chrome, and Arista Flaws to KEV | CVSS 6.9, affected series, CWE classification | 2026-06-15 |
| 2 · Press | SecurityAffairs — CISA adds Cisco / Arista EOS / Chromium V8 to KEV | KEV batch context, ITW confirmation | 2026-06-15 |
| 3 · Aggregator | CIRCL Vulnerability-Lookup — CVE-2026-7473 | CVE metadata, CWE-697, affected-config cross-reference | 2026-06-15 |
Detections are portable templates. Replace REPLACE_WITH_* placeholders with your own VTEP/decap IPs, behind-VTEP segment CIDRs, and management/scanner source ranges, and validate field names in your tenant before scheduling.