CVE-2026-55175 Overview
CVE-2026-55175 affects Spinnaker, an open source multi-cloud continuous delivery platform. The vulnerability resides in the rosco microservice, which processes Kubernetes manifests. Kustomize bake operations perform unsafe YAML tag processing when parsing kustomization files. Attackers with permission to trigger a Kustomize bake can achieve remote code execution on rosco pods. The flaw is classified as insecure deserialization [CWE-502]. Affected releases include versions prior to 2026.1.1, 2026.0.3, 2025.4.4, and 2025.3.4 on their respective release lines. The Spinnaker project addressed the issue in these patched versions.
Critical Impact
Attackers with access to trigger Kustomize bake operations can execute arbitrary code on rosco pods, compromising the continuous delivery pipeline and any credentials or workloads reachable from those pods.
Affected Products
- Spinnaker rosco versions prior to 2025.3.4 on the 2025.3.x line
- Spinnaker rosco versions prior to 2025.4.4 on the 2025.4.x line
- Spinnaker rosco versions prior to 2026.0.3 and 2026.1.1 on the 2026.x lines
Discovery Timeline
- 2026-07-10 - CVE-2026-55175 published to NVD
- 2026-07-15 - Last updated in NVD database
Technical Details for CVE-2026-55175
Vulnerability Analysis
Spinnaker's rosco service compiles Kubernetes manifests from templating tools including Helm and Kustomize. When performing a Kustomize bake, rosco reads kustomization.yaml and related files through KustomizationFileReader. The reader used a YAML parser configured to honor arbitrary YAML tags, including those that trigger Java object instantiation during deserialization.
An attacker who supplies a crafted kustomization artifact can embed tags that cause the parser to instantiate attacker-controlled classes. This behavior matches the classic insecure deserialization pattern documented in [CWE-502]. Because rosco runs bake operations as a service, code executes with the privileges of the rosco pod, including any mounted service account tokens, cloud credentials, or registry secrets.
Root Cause
The root cause is a YAML parser configuration in KustomizationFileReader.java that did not restrict polymorphic type handling. Untrusted YAML documents fetched from source artifacts were parsed with default settings that permit resolution of custom tags into JVM classes.
Attack Vector
Exploitation requires the ability to influence the Kustomize bake input, typically by controlling a Git repository or artifact referenced by a Spinnaker pipeline. The attack is network-based and requires low privileges but high complexity, since the attacker must place a malicious kustomization.yaml in a location rosco will fetch and bake.
// Security patch in KustomizationFileReader.java
// Source: https://github.com/spinnaker/spinnaker/commit/2d75818b85cc4c35144d5e5ed45e7340fcab5dfe
package com.netflix.spinnaker.rosco.manifests.kustomize;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableList;
import com.netflix.spinnaker.kork.artifacts.model.Artifact;
import com.netflix.spinnaker.kork.core.RetrySupport;
The patch introduces a hardened Jackson ObjectMapper with restrictive DeserializationFeature settings so that unsafe YAML tags no longer resolve to arbitrary Java classes during bake operations.
Detection Methods for CVE-2026-55175
Indicators of Compromise
- Unexpected outbound network connections initiated by rosco pods to attacker-controlled hosts.
- New processes spawned by the rosco JVM such as /bin/sh, curl, wget, or nc.
- Kustomize bake stages that reference untrusted or newly added external Git repositories.
- Modifications to kustomization.yaml containing non-standard YAML tags such as !!javax. or !!com. type references.
Detection Strategies
- Inspect Spinnaker pipeline execution logs for bake stages that error out during YAML parsing or execute unusually long.
- Compare deployed rosco container image digests against the fixed release tags rosco-2025.3.4, rosco-2025.4.4, rosco-2026.0.3, and rosco-2026.1.1.
- Scan bake input artifacts for YAML documents containing explicit type tags or Java class references.
Monitoring Recommendations
- Enable Kubernetes audit logging on the rosco namespace and alert on process execution events from the container runtime.
- Forward rosco application logs to a central SIEM and build detections for YAML parsing exceptions correlated with subsequent shell activity.
- Monitor egress traffic from rosco pods and baseline expected destinations (source repositories, artifact stores, cloud APIs).
How to Mitigate CVE-2026-55175
Immediate Actions Required
- Upgrade rosco to 2025.3.4, 2025.4.4, 2026.0.3, 2026.1.1, or later, matching your release line.
- Restrict which users and pipelines can define or modify Kustomize bake stages within Spinnaker.
- Rotate any credentials, service account tokens, and cloud keys accessible to rosco pods if exploitation is suspected.
Patch Information
The Spinnaker maintainers released fixes in rosco-2025.3.4, rosco-2025.4.4, rosco-2026.0.3, and rosco-2026.1.1. Technical details are described in GitHub Security Advisory GHSA-p68j-q7hf-3qcp. Primary code changes are in commit 2d75818b and related backports.
Workarounds
- Disable Kustomize bake stages in Spinnaker pipelines until upgrades are applied.
- Restrict rosco egress and source repository access to trusted, curated Git remotes only.
- Apply Kubernetes NetworkPolicy and least-privilege service account bindings to limit blast radius from rosco pod compromise.
# Example: pin rosco to a patched image tag in Halyard or Kubernetes manifest
kubectl set image deployment/spin-rosco \
rosco=us-docker.pkg.dev/spinnaker-community/docker/rosco:2026.1.1 \
-n spinnaker
# Verify the running version
kubectl exec -n spinnaker deploy/spin-rosco -- \
curl -s http://localhost:8087/resolvedEnv | grep -i version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

