← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2026-20128 · CWE-257 · Disclosed 2026-02-25

A vulnerability in the Data Collection Agent

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a spare key taped under the SD-WAN manager, and attackers already know where to look

Cisco says CVE-2026-20128 is in the Data Collection Agent (DCA) feature of Cisco Catalyst SD-WAN Manager and stems from a recoverable credential file that can be fetched with a crafted HTTP request. The important version reality is: affected releases are before 20.18 for this CVE, with train-specific fixes including 20.9.8.2 and 20.12.5.3, while Cisco explicitly says releases 20.18 and later are not affected.

The vendor's HIGH 7.5 label is directionally right, but the user-supplied CVSS vector is stale/misleading for operational prioritization. Cisco's March 18, 2026 advisory update describes unauthenticated remote access to the credential file and Cisco later confirmed active exploitation in March 2026, so this is not a theoretical local-only password-storage issue anymore; it is a remotely reachable management-plane secret exposure with real intrusion evidence.

"KEV plus unauthenticated remote reachability makes this a real management-plane problem, not a lab-only password smell."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Reach the SD-WAN Manager web/API surface

The attacker first needs network access to the Cisco Catalyst SD-WAN Manager HTTP(S) interface. In the observed abuse model, the target is the management plane itself, so exposure of vManage/SD-WAN Manager to untrusted networks is the real entry condition rather than prior host compromise. Public reporting around the broader SD-WAN campaign indicates internet-reachable management interfaces were the practical risk concentrator.
Conditions required:
  • Cisco Catalyst SD-WAN Manager is deployed on an affected release
  • The management interface is reachable from the attacker network
  • HTTP(S) access to the relevant endpoint is allowed
Where this breaks in practice:
  • Many mature enterprises keep SD-WAN Manager behind VPN, ACLs, or jump hosts
  • Two-layer firewalling and trusted-host restrictions materially shrink the reachable population
  • If the interface is private-only, this becomes post-initial-access instead of internet RCE-style exposure
Detection/coverage: Exposure scanners can find the web interface, but most commodity vuln scanners will miss the exact DCA file-read condition without product-aware checks.
STEP 02

Pull the DCA credential file with a crafted request

Cisco states the flaw is due to a credential file for the DCA user being present on the affected system and retrievable by crafted HTTP request. The request path Cisco published for hunting is /reports/data/opt/data/containers/config/data-collection-agent/.dca, and successful access returns the secret needed for the next step. Tooling here is trivial: curl, python-requests, or any HTTP client.
Conditions required:
  • The vulnerable endpoint is exposed through the service proxy
  • The target is running an affected release before the relevant fixed build
Where this breaks in practice:
  • Reverse proxies, path filtering, or management-plane ACLs can block the request entirely
  • Some environments do not expose this interface outside admin workstations
  • Blue teams monitoring service-proxy logs can spot the path quickly if retention exists
Detection/coverage: Cisco gave a concrete IoC: inspect /var/log/nms/containers/service-proxy/serviceproxy-access.log for requests to the .dca path; the sample user-agent in Cisco's example was python-requests/2.31.0.
STEP 03

Recover the DCA secret and authenticate as DCA

Because the credential is stored in recoverable form, the attacker can extract the DCA password from the downloaded file rather than cracking a hash. That turns a one-shot info disclosure into usable credentials. The weaponized 'tool' is still just the attacker’s HTTP client plus whatever they use to parse the returned file.
Conditions required:
  • The file read succeeded
  • The retrieved material contains valid DCA credentials
Where this breaks in practice:
  • Credential rotation or emergency account disablement after detection can burn the stolen secret
  • If DCA access is segmented to only local or tightly filtered peers, privilege utility drops
Detection/coverage: Credential theft itself is hard to distinguish, but subsequent new DCA sessions from unusual source IPs should stand out in auth and network telemetry.
STEP 04

Use DCA privileges for follow-on access

Cisco's wording matters: a successful exploit can let the attacker access another affected system and gain DCA user privileges there. That means this is best understood as management-plane foothold material for lateral movement and chaining, not instant root on the first box. In real intrusions this kind of credential exposure is valuable because SD-WAN control infrastructure sits close to routing policy, fabric visibility, and other high-value administrative functions.
Conditions required:
  • Another affected system or reachable DCA target exists
  • The stolen DCA credentials are valid in the environment
Where this breaks in practice:
  • DCA user privileges are narrower than full admin or root
  • Segmentation between controllers/management nodes can contain the blast radius
  • Follow-on abuse often needs additional weaknesses or misconfigurations
Detection/coverage: EDR on the appliance is usually limited, so network telemetry, admin login anomalies, and controller audit logs carry most of the detection burden.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusConfirmed active exploitation. Cisco PSIRT says it became aware in March 2026 of active exploitation of CVE-2026-20128.
KEV statusYes. NVD change history shows a CISA KEV update on 2026-04-21; Cisco's exploitation update predates that and is the stronger signal.
PoC availabilityNo authoritative public PoC located in the primary-source set reviewed. That does not buy you safety here because the exploit path is simple HTTP file retrieval and exploitation is already confirmed.
EPSS0.00069 (~0.069%). Low EPSS is believable for broad internet spray, but it underweights this case because attacker value comes from a niche, high-value control-plane target rather than mass exploitation economics.
CVSS reality checkThe user-provided vector CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H conflicts with Cisco's advisory text. Cisco's advisory describes unauthenticated remote file read behavior and scores it 7.5 / AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N.
Affected versionsCisco says releases before 20.18 are affected for CVE-2026-20128, with train-specific vulnerable ranges called out in NVD/Cisco data including <20.9.8.2, 20.10.x, 20.11.x, and parts of 20.12.x, 20.13.x, 20.14.x, 20.15.x, and 20.16.x.
Fixed versionsFirst fixed releases in Cisco's table include 20.9.8.2, 20.12.5.3, and for some trains migration to 20.12.6.1, 20.15.4.2, or 20.18.2.1. Cisco also states 20.18 and later are not affected for this CVE.
Detection cluesCisco's published hunt path is /var/log/nms/containers/service-proxy/serviceproxy-access.log for requests to /reports/data/opt/data/containers/config/data-collection-agent/.dca.
Exposure populationNo authoritative public Shodan/Censys count was verified from primary sources reviewed. Operationally, exposure is bounded by whether SD-WAN Manager is reachable from untrusted networks; Cisco hardening guidance explicitly says to prevent internet access or restrict it to trusted hosts.
Disclosure and reporterDisclosed 2026-02-25. Cisco says the issues were found during internal security testing by Arthur Vidineyev of Cisco ASIG.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (8.4/10)

The decisive amplifier is confirmed active exploitation against a management-plane product that can be remotely reached in the wrong deployments. The main downward pressure is that the reachable population is much smaller than a mass-market internet service and the immediate privilege gained is DCA, not instant root.

HIGH Cisco's affected/fixed version and active-exploitation statements
MEDIUM Real-world blast-radius assessment versus direct root compromise
MEDIUM Exposure-population estimate because no primary-source internet census was verified

Why this verdict

  • Up from the user-supplied local-only story: Cisco's March 18, 2026 advisory text says the attacker can send a crafted HTTP request and read the DCA credential file remotely and unauthenticated, which is a materially more dangerous starting point than AV:L/PR:H.
  • KEV beats EPSS here: active exploitation and KEV listing are hard evidence of operational attacker interest; low EPSS is downward pressure for mass exploitation probability, not proof of low enterprise risk.
  • Management-plane exposure is the amplifier: if SD-WAN Manager is exposed, this hits a control component with outsized follow-on value for lateral movement and policy abuse across the fabric.
  • But friction is real: many enterprises do not expose SD-WAN Manager broadly, and Cisco's own hardening guidance assumes it should sit behind filtering devices and trusted-host controls.
  • Impact is meaningful but not maximal: the immediate win is DCA privileges and access to another affected system, not guaranteed root on every controller from a single packet.

Why not higher?

This is not an every-host wormable internet RCE. The attack still depends on the SD-WAN Manager management surface being reachable and the resulting privilege is narrower than full administrative or root control, so it does not justify a CRITICAL bucket on exposure mechanics alone.

Why not lower?

Dropping this to MEDIUM would ignore the two strongest signals in patch triage: confirmed exploitation and management-plane value. When attackers are already using a remotely reachable path against SD-WAN infrastructure, the right mental model is 'crown-jewel exposure with friction,' not 'just another credential-storage weakness.'

05 · Compensating Control

What to do — in priority order.

  1. Block untrusted access to SD-WAN Manager now — Put SD-WAN Manager behind VPN, jump host, or explicit trusted-host ACLs and remove direct internet reachability immediately, within hours because exploitation is confirmed. This is the fastest way to break step 1 of the attack path while patching is scheduled.
  2. Hunt the Cisco IoC path — Review /var/log/nms/containers/service-proxy/serviceproxy-access.log for requests to the published .dca path and preserve logs centrally immediately, within hours. This gives you a direct, vendor-supplied signal for attempted or successful exploitation.
  3. Restrict management-plane protocols — Allow only known admin workstations and required control-plane peers to reach the Manager on required ports immediately, within hours. Even if you cannot patch today, shrinking the source IP set sharply reduces exploitability.
  4. Rotate exposed secrets and review DCA use — After any suspected hit, rotate credentials associated with DCA workflows and validate whether unexpected DCA sessions or lateral access occurred immediately, within hours. The vulnerability's value is the stolen secret; burn it fast.
  5. Upgrade to a fixed release — Move each affected train to Cisco's first fixed release or to an unaffected later train as the durable fix. Because this is KEV-listed/actively exploited, treat remediation as patch immediately, within hours rather than waiting for the normal HIGH deadline.
What doesn't work
  • MFA on the admin portal alone doesn't solve this, because Cisco's abuse path is an unauthenticated HTTP file read rather than a normal interactive login.
  • Generic perimeter IDS signatures without product-specific path visibility are weak here; the exploit can look like a simple GET unless you key on the exact endpoint.
  • Relying on EPSS-based deprioritization is a mistake; the low EPSS reflects population economics, not the risk of a reachable SD-WAN control node already under active exploitation.
06 · Verification

Crowdsourced verification payload.

Run this from an auditor workstation that can SSH to each Cisco Catalyst SD-WAN Manager node. Invoke it as ./check_cve_2026_20128.sh sdwan-mgr01.example.com admin and use an account allowed to run request nms application-server version in privileged EXEC; no root shell is required.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_20128.sh
# Determine likely exposure to CVE-2026-20128 on Cisco Catalyst SD-WAN Manager.
# Usage: ./check_cve_2026_20128.sh <host> [user]
# Exit codes: 0 PATCHED, 1 VULNERABLE, 2 UNKNOWN, 3 USAGE/SSH ERROR

set -u

HOST="${1:-}"
USER="${2:-admin}"

if [[ -z "$HOST" ]]; then
  echo "UNKNOWN - usage: $0 <host> [user]"
  exit 3
fi

SSH_OPTS=( -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new )
CMD='request nms application-server version'
RAW_OUTPUT=$(ssh "${SSH_OPTS[@]}" "${USER}@${HOST}" "$CMD" 2>/dev/null)
SSH_RC=$?

if [[ $SSH_RC -ne 0 || -z "$RAW_OUTPUT" ]]; then
  echo "UNKNOWN - unable to run version command over SSH on ${HOST}"
  exit 3
fi

# Expected sample: "NMS application server is running version ... on vManage version 20.12.5.2"
VERSION=$(echo "$RAW_OUTPUT" | sed -nE 's/.*vManage version ([0-9]+\.[0-9]+(\.[0-9]+){0,2}).*/\1/p' | head -n1)

if [[ -z "$VERSION" ]]; then
  echo "UNKNOWN - could not parse vManage version from: $RAW_OUTPUT"
  exit 2
fi

ver_ge() {
  # returns 0 if $1 >= $2
  local IFS=.
  local i
  local -a a=($1) b=($2)
  local len=${#a[@]}
  (( ${#b[@]} > len )) && len=${#b[@]}
  for ((i=${#a[@]}; i<len; i++)); do a[i]=0; done
  for ((i=${#b[@]}; i<len; i++)); do b[i]=0; done
  for ((i=0; i<len; i++)); do
    ((10#${a[i]} > 10#${b[i]})) && return 0
    ((10#${a[i]} < 10#${b[i]})) && return 1
  done
  return 0
}

MAJOR_MINOR=$(echo "$VERSION" | awk -F. '{print $1"."$2}')

# Cisco advisory logic for CVE-2026-20128:
# - 20.18 and later: not affected for this CVE
# - 20.9 fixed in 20.9.8.2
# - 20.10.x and 20.11.x: vulnerable; fix requires move to 20.12.6.1
# - 20.12 fixed in 20.12.5.3 (and 20.12.6.1 also fixed)
# - 20.13.x and 20.14.x: vulnerable; fix requires move to 20.15.4.2
# - 20.15 fixed in 20.15.4.2
# - 20.16.x: vulnerable; fix requires move to 20.18.2.1
# - Earlier than 20.9: treat as vulnerable/migrate

if ver_ge "$VERSION" "20.18.0"; then
  echo "PATCHED - ${HOST} is running ${VERSION}; Cisco states 20.18 and later are not affected by CVE-2026-20128"
  exit 0
fi

case "$MAJOR_MINOR" in
  20.9)
    if ver_ge "$VERSION" "20.9.8.2"; then
      echo "PATCHED - ${HOST} is running ${VERSION}; fixed for CVE-2026-20128 in 20.9.8.2"
      exit 0
    else
      echo "VULNERABLE - ${HOST} is running ${VERSION}; 20.9 requires at least 20.9.8.2"
      exit 1
    fi
    ;;
  20.10|20.11)
    echo "VULNERABLE - ${HOST} is running ${VERSION}; this train requires upgrade to 20.12.6.1 or later fixed train"
    exit 1
    ;;
  20.12)
    if ver_ge "$VERSION" "20.12.5.3"; then
      echo "PATCHED - ${HOST} is running ${VERSION}; 20.12 fixed in 20.12.5.3"
      exit 0
    else
      echo "VULNERABLE - ${HOST} is running ${VERSION}; 20.12 requires at least 20.12.5.3"
      exit 1
    fi
    ;;
  20.13|20.14)
    echo "VULNERABLE - ${HOST} is running ${VERSION}; this train requires upgrade to 20.15.4.2 or later fixed train"
    exit 1
    ;;
  20.15)
    if ver_ge "$VERSION" "20.15.4.2"; then
      echo "PATCHED - ${HOST} is running ${VERSION}; 20.15 fixed in 20.15.4.2"
      exit 0
    else
      echo "VULNERABLE - ${HOST} is running ${VERSION}; 20.15 requires at least 20.15.4.2"
      exit 1
    fi
    ;;
  20.16)
    echo "VULNERABLE - ${HOST} is running ${VERSION}; this train requires upgrade to 20.18.2.1 or later fixed train"
    exit 1
    ;;
  20.17)
    echo "UNKNOWN - ${HOST} is running ${VERSION}; 20.17 train not explicitly covered in the reviewed advisory text, verify with Cisco TAC"
    exit 2
    ;;
  *)
    # Any version below 20.9 or unrecognized pre-20.18 build: conservative call
    if ver_ge "$VERSION" "20.0.0"; then
      echo "VULNERABLE - ${HOST} is running ${VERSION}; pre-20.18 release not known-safe for CVE-2026-20128"
      exit 1
    else
      echo "UNKNOWN - parsed unusual version ${VERSION}; verify manually"
      exit 2
    fi
    ;;
esac
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, treat every internet- or partner-reachable Cisco Catalyst SD-WAN Manager as a priority exposure: remove untrusted reachability and hunt the published .dca access-log indicator immediately, within hours, because KEV/active exploitation overrides the normal HIGH timing. For formal tracking, the noisgate mitigation SLA is superseded here by 'patch / mitigate immediately, within hours,' and the noisgate remediation SLA should also be accelerated to the same immediate window for exposed nodes; for non-exposed internal-only nodes, still complete the Cisco fixed-version upgrade on an emergency basis rather than letting this sit in the normal 180-day HIGH queue.

Sources

  1. Cisco Security Advisory: Cisco Catalyst SD-WAN Vulnerabilities
  2. Cisco mirror of advisory
  3. NVD CVE-2026-20128
  4. CVE Program record
  5. CISA Known Exploited Vulnerabilities Catalog
  6. Cisco SD-WAN Command Reference PDF
  7. Cisco DevNet API: Find Software Version
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.