CVE Tools
Back to blog

Cisco's rack-server controller sat below the OS — CVE-2026-20200 turns a "download my SSH key" button into root, with a public PoC already out

Argument injection in Cisco IMC's web UI lets an already-logged-in low-privilege user hand curl to root. No workaround exists, and researcher Christoph Peil published a working exploit tool the same week Cisco shipped the fix.

Cisco's rack-server controller sat below the OS — CVE-2026-20200 turns a "download my SSH key" button into root, with a public PoC already out. Argument injection in Cisco IMC's web UI lets an alrea
Cisco's rack-server controller sat below the OS — CVE-2026-20200 turns a "download my SSH key" button into root, with a public PoC already out. Argument injection in Cisco IMC's web UI lets an alrea

Cisco Integrated Management Controller (IMC) is the out-of-band console welded to every UCS rack server — the thing you reach when the operating system on top of it is unresponsive, unbootable, or doesn't exist yet. It can reflash firmware, flip SecureBoot, and power-cycle the box from a network port that's supposed to be reachable only by the people who run the data center. On August 5, 2026, Cisco disclosed that a low-privilege, already-authenticated IMC user could turn a routine convenience feature into a root shell on that console — no exploit chain, no privilege escalation bug needed, just one unsanitized parameter.

8.8CVSS 3.1 base (Cisco's own score)AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
0.84%EPSS score54.5th percentile — auth requirement keeps it modest
0official workaroundsCisco: "there are no workarounds"
1public PoC toolkit already liveCIMCown, published by the discoverer

The feature that leaks into root

The bug lives in a feature nobody thinks twice about: registering an SSH public key for IMC access. Cisco's web UI offers three ways to supply that key — paste it, upload a file, or have the controller fetch it itself from a remote FTP or HTTP server. That third option is where it breaks. Per the researcher who found it, Christoph Peil of NSIDE ATTACK LOGIC, requesting a remote key download runs a backend script along these lines:

Illustrative — from NSIDE's public writeup, not independently reproduced here
/etc/scripts/download_ssh_keys.sh http 123.123.123.123 /tmp/example.ssh.pub

That script hands its parameters straight to curl. Cisco's own advisory calls the flaw "improper validation of user-supplied input"; NSIDE's writeup is more specific — the user-controlled parameters aren't fully filtered before curl sees them, so an attacker can smuggle in extra curl arguments rather than just a hostname. curl is a genuinely powerful primitive once you control its full argument list: it can write files, read files, and — through its config-file and library-loading options — get all the way to running arbitrary commands. The part that makes this a full server takeover instead of a curl sandbox escape: "both the script and curl run with root privileges," per NSIDE.

From a login you already have, to root below the OS

  1. Attacker holds valid low-privilege IMC credentials — PR:L — some level of authenticated access, not admin
  2. Requests SSH-key download from an attacker-controlled URL — Web UI's remote-fetch option for SSH key registration
  3. Backend runs download_ssh_keys.sh with unsanitized params — Extra curl arguments smuggled through
  4. curl executes injected arguments as root — Script + curl both run with root privileges
  5. Root on the IMC's underlying OS — Below the host OS entirely
  6. Attacker can influence BIOS and SecureBoot — Persistence invisible to OS-level EDR

Two severity scores for the same bug

Cisco's CVSS 3.1 vector scores this 8.8 (Scope: Unchanged). NSIDE's own advisory, NSIDE-SA-2026-003, rates the same flaw higher — its blog post cites 9.8. The likely driver of the gap is scope: Cisco's vector treats the vulnerable component and the impact as staying within the same authority boundary, while NSIDE's framing (a management-plane bug reaching into BIOS/SecureBoot, a fundamentally different trust layer) leans toward a scope change. Neither number is wrong on its own terms — they're answering slightly different questions about what "the vulnerable component" is.

Vendor score vs. researcher score

Cisco's official CVSSNSIDE's self-assessment
Base score8.8 — High9.8 — Critical
VectorAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNot published as a full vector string
ScopeUnchangedImplied changed — reaches BIOS/SecureBoot layer
Who assigned itCisco PSIRT (CNA)NSIDE ATTACK LOGIC (discoverer, non-CNA)

What's actually affected

CVE-2026-20200 is one of two CVEs in the same advisory (cisco-sa-cimc-arg-inject-upSHdMfU); the other, CVE-2026-20288, requires admin privileges and scores 6.5. Both share the argument-injection root cause. CVE-2026-20200 specifically needs only a low-privilege IMC account, which is what makes it the more dangerous of the pair.

PlatformVulnerable to CVE-2026-20200?Fixed release
UCS C-Series M5 (standalone)YesCisco IMC 4.2(3r) / 4.3(2.260020)
UCS C-Series M6 (standalone)YesCisco IMC 4.2(3r) / 4.3(6.260054) / 6.0(2.260143)
UCS C-Series M7/M8 (standalone)YesCisco IMC 4.3(6.260033) or 4.3(6.260054) / 6.0(2.260044) or 6.0(2.260143)
UCS S-Series Storage Servers (standalone)YesCisco IMC 4.3(6.260054)
Preconfigured appliances exposing the IMC UI (APIC, FMC, ISE SNS, Secure Network Analytics, etc.)Depends on underlying UCS hardware/modelAppliance-specific — see the advisory's per-product table
UCS B-Series / X-SeriesNoNot affected
UCS C/S-Series attached to Fabric Interconnects (UCS Manager / IMM mode)NoNot affected — standalone mode only

No workaround — and a public PoC toolkit already exists

Cisco's advisory is blunt: "there are no workarounds that address these vulnerabilities." There's no config flag to flip that closes the argument-injection path while leaving the SSH-key feature usable. The only fix is the firmware upgrade. Meanwhile, days after Cisco's fix shipped, Peil published CIMCown — a Python/Go toolkit on the NSIDE ATTACK LOGIC GitHub org — that operationalizes the bug. It requires valid IMC credentials and a target host, then offers:

  • test — connect and pull /etc/passwd, to confirm the primitive works
  • download — retrieve arbitrary files from the target, e.g. /etc/shadow
  • upload — push files to the device, such as a socat binary
  • build — compile a Go-based reverse shell payload for the operator's own IP
  • shell — deploy and trigger that reverse shell against the target

Why the EPSS score looks low for an 8.8 with a public PoC

CVE-2026-20200 carries an EPSS score of 0.84% (54.5th percentile) — unremarkable next to its CVSS. That's not EPSS mis-scoring the bug; it's a legitimate reflection of the PR:L requirement. Unlike an unauthenticated pre-auth RCE, this flaw needs a valid IMC login before the argument injection ever fires, which cuts down the realistic population of opportunistic attackers even with a public tool in hand. The honest read: EPSS is telling you exploitation is comparatively unlikely at internet scale, not that the consequence is small if it does happen. For a management controller with BIOS-level reach, low likelihood and severe consequence can both be true at once — that's exactly the profile that argues for patching on the advisory's own severity rating rather than waiting on EPSS to catch up.

What to do now

  1. Identify every standalone UCS C-Series (M5–M8), S-Series, and appliance built on that hardware that exposes the IMC web UI — including ones you inherited pre-integrated inside another Cisco product.
  2. Patch to the fixed IMC release for your platform from the table above. There is no partial mitigation short of the firmware update.
  3. If you can't patch immediately, disable the IMC web interface entirely — Peil's own recommendation, and the closest thing to a workaround that exists.
  4. Restrict network reachability to IMC/BMC interfaces to a dedicated out-of-band management network — never expose them to a general internal network, let alone the public internet.
  5. Audit which accounts hold IMC login credentials at all; PR:L is the only barrier this bug has, so credential hygiene on the controller itself is now a meaningful control.
If an attacker gets in here, they effectively control the server and all the systems running on it.
— Christoph Peil, NSIDE ATTACK LOGIC — via Help Net Security

Scores and exploitation status current as of 2026-08-10