Feb 28, 2026·5 min read·54 visits
Authenticated attackers can exploit Spinnaker's artifact fetching mechanism to perform SSRF. By defining an HTTP artifact with a malicious URL, attackers can access cloud metadata services or internal APIs. Fixed in versions 2025.1.6, 2025.2.3, and 2025.3.0.
A high-severity Server-Side Request Forgery (SSRF) vulnerability exists in Spinnaker's Clouddriver component, specifically within the artifact fetching logic. The flaw allows authenticated users with pipeline creation privileges to define malicious HTTP artifacts pointing to arbitrary URLs. By leveraging the 'no-auth' HTTP artifact provider, attackers can coerce the Spinnaker platform to request data from internal network resources or cloud metadata services (e.g., AWS IMDS), leading to potential credential theft and lateral movement.
CVE-2025-61916 exposes a critical flaw in the artifact management subsystem of Spinnaker, the open-source continuous delivery platform. The vulnerability is rooted in the clouddriver-artifacts component, which is responsible for resolving and fetching artifacts (files, manifests, images) required during pipeline execution.
Spinnaker pipelines often require external resources—such as Helm chart values files or configuration manifests—to be fetched from version control systems or HTTP endpoints. The system supports various artifact providers, including a generic HTTP provider. In vulnerable configurations, this provider lacks sufficient validation of user-supplied URLs.
An attacker with standard permissions to create or modify pipelines can define a new artifact that points to a sensitive destination, such as the loopback interface (127.0.0.1), internal services within the Kubernetes cluster, or the link-local addresses used by cloud providers for instance metadata (169.254.169.254). Because the request originates from the Clouddriver pod, it bypasses network perimeter firewalls, effectively bridging the external user into the internal trust zone.
The root cause of this vulnerability involves the improper handling of the "no-auth" HTTP artifact account type within Clouddriver. When an HTTP artifact provider is enabled, Spinnaker essentially acts as an open proxy for the pipeline creator, fetching whatever resource is specified in the artifact definition.
The Mechanics of Failure:
reference (URL) for an artifact without enforcing an allowlist of permitted domains or a blocklist of reserved IP ranges.169.254.0.0/16.values.yaml file. If the artifact points to AWS IMDS, Clouddriver fetches the credentials and passes them to Rosco, where they may be exposed in error logs or rendered into the final manifest.While specific code diffs are not provided in the disclosure, the architectural flaw lies in the ArtifactController and the HttpArtifactCredentials implementation within Clouddriver.
In the vulnerable logic, the flow proceeds as follows:
http/file with reference http://169.254.169.254/latest/meta-data/.download method is invoked. The standard Java RestTemplate or OkHttp client executes the GET request.The remediation (in versions 2025.1.6+) introduces strict validation logic. The patch likely enforces a requirement that artifact URLs must match a pre-configured allowlist of domains (e.g., github.com, bitbucket.org) or explicitly blocks access to link-local and loopback addresses at the application layer before the socket connection is attempted.
To exploit CVE-2025-61916, an attacker requires authentication and the READ and WRITE permissions necessary to create or trigger pipelines. The exploitation process does not require high privileges (like Admin).
Attack Scenario:
http://169.254.169.254/latest/meta-data/iam/security-credentials/NodeRole (AWS) or http://metadata.google.internal/computeMetadata/v1/ (GCP).The impact of this SSRF is rated High (CVSS 7.9) because it facilitates a scope change (S:C). The vulnerability allows an attacker to breach the logical boundary of the Spinnaker application and interact with the underlying infrastructure.
Consequences:
Remediation requires updating the Spinnaker platform to a patched version. The fix introduces stricter URL validation and prevents the implicit trust of the 'no-auth' HTTP provider.
Immediate Actions:
Defense-in-Depth:
If immediate patching is not feasible, administrators should implement Open Policy Agent (OPA) policies within Spinnaker. An OPA policy can be configured to deny pipeline executions if any artifact URL matches a blocklist of sensitive subnets (169.254.0.0/16, 10.0.0.0/8, 127.0.0.0/8). Additionally, network policies (e.g., Kubernetes NetworkPolicies or Istio Egress rules) should be applied to the Clouddriver pod to restrict outbound connectivity solely to required external domains.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L| Product | Affected Versions | Fixed Version |
|---|---|---|
Spinnaker Spinnaker | < 2025.1.6 | 2025.1.6 |
Spinnaker Spinnaker | >= 2025.2.0, < 2025.2.3 | 2025.2.3 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-918 (SSRF) |
| CVSS v3.1 | 7.9 (High) |
| Attack Vector | Local / Authenticated |
| EPSS Score | 0.041% (Low Probability) |
| Impact | Credential Theft, Internal Recon |
| Exploit Status | No Known Exploit (None) |
Server-Side Request Forgery (SSRF) occurs when a web application is fetching a remote resource without validating the user-supplied URL. It allows an attacker to coerce the application to send a crafted request to an unexpected destination.
CVE-2026-75828 is a critical stored cross-site scripting (XSS) vulnerability in the getgrav Grav CMS before version 2.0.15. The vulnerability resides in the detectXss() security filter mechanism, where parser-differential mismatches between the regular-expression-based server-side validation and browser HTML5 tokenization allow authenticated editors to bypass event-handler detection and inject arbitrary JavaScript execution vectors.
An arbitrary file write and remote code execution vulnerability exists in Grav CMS before version 2.0.15. The vulnerability is caused by using an incomplete denylist validation approach for bare PHP functions in the Blueprint dynamic-data compiler, allowing authenticated users with page-editing or blueprint-configuration privileges to execute arbitrary functions such as error_log.
CVE-2026-75834 is a stored Cross-Site Scripting (XSS) vulnerability in Grav CMS core, caused by a design flaw in its input validation wrapper Security::detectXss(). Regular expressions using the PCRE UTF-8 /u modifier fail-open when encountering invalid UTF-8 sequences or when the PCRE JIT stack limit is exhausted, allowing authenticated users with page-editing privileges to save malicious HTML and scripts.
CVE-2026-75837 is a critical privilege escalation vulnerability affecting the Grav Flat-File Content Management System (CMS) in versions prior to 2.0.14. Due to a missing security guard on the access field within the core Flex group blueprint configuration file (system/blueprints/user/group.yaml), a delegated administrative operator can submit a crafted payload to elevate their permissions to super-administrator, which can then be leveraged to achieve remote code execution.
CVE-2026-76461 is a critical, unauthenticated, remotely exploitable SQL Injection (SQLi) vulnerability in the email parsing engine of Cisco AsyncOS Software for Cisco Secure Email Gateway (SEG). An unauthenticated remote attacker can exploit this vulnerability by transmitting a specially crafted email message containing malicious SQL statements directly through an affected gateway.
CVE-2026-72819 is a high-severity Remote Code Execution (RCE) vulnerability in Grav CMS before version 2.0.13. The vulnerability lies in the validation of dynamic data providers (callbacks) within the Flex Objects plugin settings and blueprints, allowing administrative users to bypass validation checks via array-notation callables. This validation failure enables administrative users to execute arbitrary PHP classes and methods, including the GPM Installer unZip routine, leading to full remote code execution on the server.