← Back to Feed CACHED · 2026-08-17 13:23:02 · CACHE_KEY CVE-2026-32193
CVE-2026-32193 · CWE-22 · Disclosed 2026-06-09

Improper limitation of a pathname to a restricted directory

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

Like leaving a service tunnel unlocked inside a secure building — but only guests with a VIP badge and a special room key can reach it

CVE-2026-32193 is a path-traversal flaw in Azure Kubernetes Service that lets an attacker who can deploy a pod with hostNetwork: true send crafted requests to a host-level service not meant for unauthenticated access. The traversal breaks out of the container's filesystem namespace and gives the attacker control of the AKS worker node. Affected versions are all AKS node images prior to v0.20260213.5, patched in the June 2026 Patch Tuesday cycle.

Microsoft scored this 8.8 HIGH with a Scope-change flag (S:C), which is technically accurate — the bug does cross the container-to-host boundary, and C/I/A are all total on the node. However, the vendor score does not sufficiently penalize the prerequisites: you must already hold credentials that let you schedule pods in the cluster, *and* the pod must be configured with hostNetwork: true, a setting that security-hardened clusters block via Pod Security Admission or Azure Policy. The real-world population of clusters where an attacker can both deploy arbitrary pods and enable hostNetwork is meaningfully smaller than the raw CVSS implies, so the 8.8 overstates the average enterprise exposure by about a point.

"AKS container escape via path traversal needs hostNetwork pods — real risk but gated by cluster auth"
02 · The Attack Path

5 steps from start to impact.

STEP 01

Obtain AKS cluster credentials

The attacker must hold valid credentials (kubeconfig, service account token, or Azure AD identity) that authorize pod creation in the target AKS cluster. This can come from a compromised CI/CD pipeline, stolen developer credentials, or lateral movement from an Azure subscription with AKS Contributor role.
Conditions required:
  • Valid Kubernetes RBAC credentials with pod create/exec permissions
  • Network reachability to the API server (public or via VPN/private endpoint)
Where this breaks in practice:
  • Requires prior compromise of a developer workstation, CI runner, or Azure identity — this is a post-initial-access position
  • Clusters behind private endpoints are unreachable from the internet
Detection/coverage: Azure AD sign-in logs and AKS audit logs capture API server authentication events. Microsoft Defender for Containers flags anomalous pod creation.
STEP 02

Deploy a pod with hostNetwork: true

The attacker creates a pod spec with hostNetwork: true, placing the container directly on the node's network namespace. This gives the container access to host-level listening services (kubelet, node-local agents, and the vulnerable service). Default AKS does not enforce Pod Security Admission in Baseline or Restricted mode, so hostNetwork pods are permitted unless the cluster admin opted in.
Conditions required:
  • RBAC allows creating pods in a namespace without PSA Baseline enforcement
  • No OPA/Gatekeeper or Azure Policy blocking hostNetwork
Where this breaks in practice:
  • Organizations following CIS AKS Benchmark 5.2.4 block hostNetwork via policy
  • Azure Policy built-in 'Kubernetes cluster pods should only use approved host network and port range' catches this if enabled
Detection/coverage: Kubernetes audit log event create pod with spec.hostNetwork=true. Azure Policy compliance dashboard shows violations.
STEP 03

Send path-traversal payload to host service

From the hostNetwork pod, the attacker sends crafted HTTP or gRPC requests to the host-level service endpoint reachable on localhost/node IP. The path-traversal payload (e.g., ../../) bypasses directory restrictions, allowing the attacker to read or write files outside the intended service root on the node filesystem.
Conditions required:
  • hostNetwork pod is running on the target node
  • Knowledge of the vulnerable host-level service endpoint and path-traversal payload format
Where this breaks in practice:
  • No public PoC or exploit code exists as of August 2026 — the attacker must reverse-engineer the payload
  • The specific host service and traversal pattern are not documented publicly
Detection/coverage: Host-level IDS or file-integrity monitoring may detect anomalous file access patterns on the node. No specific Snort/Suricata signature published yet.
STEP 04

Escape container, gain node control

Successful traversal allows writing to sensitive node paths (e.g., cron, systemd unit files, kubelet config) or reading node credentials (kubelet client cert, cloud provider tokens). The attacker achieves code execution as root on the AKS worker node, escaping the container boundary entirely.
Conditions required:
  • Path-traversal payload successfully writes or reads privileged node files
Where this breaks in practice:
  • AKS nodes run a hardened, minimal OS (CBL-Mariner/Azure Linux) with limited writable attack surface
  • Managed node images auto-update; the fix was rolled out in June 2026
Detection/coverage: Microsoft Defender for Containers detects container escape attempts. Azure Security Center alerts on anomalous node-level process execution.
STEP 05

Pivot from compromised node

With node-level root, the attacker can access all pods' secrets on that node, impersonate the kubelet identity to the API server, read mounted ConfigMaps/Secrets, and potentially move laterally to other nodes or the control plane if RBAC is over-permissioned. In multi-tenant clusters, this means cross-tenant data access.
Conditions required:
  • Node-level root access achieved
  • Other workloads with sensitive secrets scheduled on the same node
Where this breaks in practice:
  • Managed AKS control planes are isolated from customer nodes — control-plane compromise is not direct
  • Workload identity (federated tokens) reduces static secrets on nodes
Detection/coverage: Anomalous kubelet API calls. Unexpected service account token usage in API server audit logs.
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNone observed. Not listed in CISA KEV. No campaigns reported by CrowdStrike, Microsoft, or GreyNoise as of August 2026.
Proof-of-conceptNo public PoC. No exploit code on GitHub, Packet Storm, or ExploitDB. The specific host service and traversal pattern remain undisclosed.
EPSS score0.00336 (≈ 67th percentile) — low predicted exploitation probability within 30 days.
KEV statusNot listed. No CISA Known Exploited Vulnerabilities entry as of 2026-08-17.
CVSS vectorCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H — Local access, low privileges, no user interaction, scope change (container → host). All impact metrics maxed.
Affected versionsAll AKS node images prior to v0.20260213.5. Applies to both Linux and Windows node pools.
Fixed versionAKS node image v0.20260213.5 and later. Microsoft auto-deploys node image updates; clusters on auto-upgrade channels received the fix in June 2026.
Scanning / exposureNot internet-facing by nature (requires cluster-internal pod access). Shodan/Censys scans are irrelevant — the attack surface is cluster-internal, not network-perimeter.
Disclosure date2026-06-09 (Microsoft June 2026 Patch Tuesday).
ReporterNot publicly credited in the MSRC advisory.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (7.5/10)

The single most decisive factor sustaining the HIGH verdict is the role multiplier: AKS is a Kubernetes orchestration platform where container-to-node escape yields access to all co-located workloads, secrets, and the kubelet identity — blast radius is node-to-cluster-scale in multi-tenant deployments. However, the score is downgraded from the vendor's 8.8 because the chain requires both authenticated cluster access and the ability to deploy hostNetwork pods, compounding two prerequisites that each narrow the reachable attacker population.

HIGH Vulnerability description and attack prerequisites
MEDIUM Fraction of AKS clusters that permit hostNetwork pods (default is permissive but adoption of PSA/Policy varies)
LOW Exploitation likelihood — no PoC exists and host service details are undisclosed

Why this verdict

  • Prerequisites compound: The attacker must already hold cluster credentials AND be able to schedule hostNetwork pods. Each prerequisite assumes a prior compromise stage (stolen creds or over-permissioned RBAC), narrowing the realistic attacker population.
  • No public PoC or exploitation: Two months post-disclosure, no exploit code or in-the-wild activity has surfaced. EPSS at 0.34% reinforces low near-term weaponization risk.
  • Role multiplier: AKS is canonically a high-value orchestration component. Container escape on a worker node gives access to all co-located pod secrets, the kubelet client certificate, and cloud provider IMDS tokens. In multi-tenant clusters the blast radius is cross-tenant. This floors the verdict at HIGH despite significant friction.
  • Default AKS permits hostNetwork: While security-hardened clusters block hostNetwork via PSA Baseline or Azure Policy, the default AKS configuration does not enforce these restrictions, meaning a non-trivial fraction (estimated >50%) of production clusters are reachable if the attacker has pod-creation RBAC.
  • Auto-upgrade mitigates silently: AKS clusters on the node-image or rapid auto-upgrade channel received the fix automatically in June 2026, reducing the vulnerable population over time without admin action.

Why not higher?

CRITICAL would require either active exploitation, a public PoC lowering the barrier, or an unauthenticated remote attack path. This CVE requires authenticated cluster access plus hostNetwork pod creation — two prerequisites that each assume prior compromise. The blast radius is node-scale (not fleet-scale or control-plane-scale in managed AKS), and no attacker tooling exists to weaponize it.

Why not lower?

MEDIUM would undercount the blast radius of a container escape in a Kubernetes orchestration platform. Even with friction, a successful exploit yields root on the node, access to all co-located secrets, and potential lateral movement across the cluster. AKS is a canonical high-value-role component and the default configuration does not block the prerequisite hostNetwork setting, so the floor is HIGH.

05 · Compensating Control

What to do — in priority order.

  1. Enforce Pod Security Admission at Baseline or Restricted level — The Baseline PSA profile blocks hostNetwork: true pods cluster-wide. Apply this to all non-system namespaces immediately. This completely eliminates the attack path. Per the noisgate mitigation SLA for HIGH, deploy within 30 days.
  2. Enable Azure Policy for AKS to block hostNetwork pods — Apply the built-in Azure Policy Kubernetes cluster pods should only use approved host network and port range in Deny mode. This provides a backstop even if PSA is misconfigured. Deploy within 30 days per noisgate mitigation SLA.
  3. Upgrade AKS node images to v0.20260213.5 or later — Trigger a manual node image upgrade via az aks nodepool upgrade --node-image-only if your cluster is not on an auto-upgrade channel. Verify current node image version in the Azure portal or via az aks nodepool show. This is the definitive remediation.
  4. Enable Microsoft Defender for Containers — Provides runtime detection of container escape attempts, anomalous host-level process execution, and suspicious pod configurations. Acts as a detection-in-depth layer.
  5. Restrict RBAC pod-creation permissions — Audit ClusterRoleBindings and RoleBindings. Ensure only CI/CD service accounts and platform teams can create pods. Revoke broad create pods permissions from developer identities.
What doesn't work
  • Network Policies alone — Network policies restrict pod-to-pod traffic but do NOT prevent a hostNetwork pod from reaching host-level services on localhost. The traversal occurs on the node's loopback interface, which network policies cannot govern.
  • Disabling the Kubernetes API server public endpoint — While good practice, this only blocks external API access. An attacker with compromised internal credentials (e.g., from a CI runner on the VNet) can still reach the private endpoint and deploy pods.
  • Node-level firewall rules (iptables/nftables) — AKS nodes are managed; customer-applied iptables rules may be overwritten by node image updates and are not a supported mitigation path.
06 · Verification

Crowdsourced verification payload.

Run this script from any workstation with az CLI and kubectl configured for the target AKS cluster. Requires az aks read permissions and a valid kubeconfig. Example: bash check_cve_2026_32193.sh my-resource-group my-aks-cluster

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_32193.sh — CVE-2026-32193 AKS node image version check
# Usage: bash check_cve_2026_32193.sh <resource-group> <cluster-name>
# Requires: az CLI authenticated, read access to AKS cluster
# Output: VULNERABLE / PATCHED / UNKNOWN

set -euo pipefail

RG="${1:-}"
CLUSTER="${2:-}"
FIXED_IMAGE="0.20260213.5"

if [[ -z "$RG" || -z "$CLUSTER" ]]; then
  echo "Usage: $0 <resource-group> <cluster-name>"
  exit 2
fi

echo "[*] Checking AKS node pools for cluster '$CLUSTER' in resource group '$RG'..."

VULNERABLE=0
PATCHED=0
UNKNOWN=0

while IFS= read -r line; do
  POOL_NAME=$(echo "$line" | cut -f1)
  NODE_IMAGE=$(echo "$line" | cut -f2)
  
  # Extract version number from node image string (e.g., AKSUbuntu-2204gen2containerd-v0.20260213.5)
  VERSION=$(echo "$NODE_IMAGE" | grep -oP 'v\K[0-9.]+' || echo "")
  
  if [[ -z "$VERSION" ]]; then
    echo "[?] Pool '$POOL_NAME': image '$NODE_IMAGE' — could not parse version"
    UNKNOWN=$((UNKNOWN + 1))
    continue
  fi
  
  # Compare versions using sort -V
  HIGHER=$(printf '%s\n%s\n' "$FIXED_IMAGE" "$VERSION" | sort -V | tail -1)
  
  if [[ "$VERSION" == "$FIXED_IMAGE" || "$HIGHER" == "$VERSION" ]]; then
    echo "[+] Pool '$POOL_NAME': image version $VERSION >= $FIXED_IMAGE — PATCHED"
    PATCHED=$((PATCHED + 1))
  else
    echo "[-] Pool '$POOL_NAME': image version $VERSION < $FIXED_IMAGE — VULNERABLE"
    VULNERABLE=$((VULNERABLE + 1))
  fi
done < <(az aks nodepool list --resource-group "$RG" --cluster-name "$CLUSTER" --query "[].{name:name, nodeImageVersion:nodeImageVersion}" -o tsv 2>/dev/null)

echo ""
if [[ $VULNERABLE -gt 0 ]]; then
  echo "VULNERABLE — $VULNERABLE node pool(s) running unpatched images"
  exit 1
elif [[ $PATCHED -gt 0 && $UNKNOWN -eq 0 ]]; then
  echo "PATCHED — all $PATCHED node pool(s) at or above fixed version $FIXED_IMAGE"
  exit 0
else
  echo "UNKNOWN — could not determine patch status for all pools (patched=$PATCHED, unknown=$UNKNOWN)"
  exit 2
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: First, check whether your AKS clusters are on an auto-upgrade channel (node-image or rapid) — if so, this was likely patched silently in June and you just need to verify via the script above. For clusters on manual upgrade, trigger az aks nodepool upgrade --node-image-only to pull the fixed node image (v0.20260213.5+) — this is your definitive remediation, due within the noisgate remediation SLA of 180 days (by December 2026). As a compensating control under the noisgate mitigation SLA of 30 days (by mid-September 2026), enforce Pod Security Admission at Baseline level or enable the Azure Policy that denies hostNetwork pods — this kills the attack path entirely regardless of patch status. Prioritize multi-tenant clusters and clusters running sensitive workloads. No active exploitation or public PoC exists, so this is a scheduled-patch item, not an emergency.

Sources

  1. MSRC Advisory — CVE-2026-32193
  2. NVD — CVE-2026-32193
  3. CVE Record — CVE-2026-32193
  4. Cisco Talos — Microsoft Patch Tuesday June 2026
  5. CrowdStrike — Patch Tuesday Analysis June 2026
  6. Microsoft Learn — Pod Security Admission in AKS
  7. Microsoft Learn — AKS Vulnerability Management
  8. Rapid7 — Patch Tuesday June 2026
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.