CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2021-25320

CVE-2021-25320: Privilege Escalation via Improper Access Control in Rancher Proxy

Alon Barad
Alon Barad
Software Engineer

Mar 3, 2026·6 min read·13 visits

Executive Summary (TL;DR)

Authenticated users can abuse the Rancher API proxy to execute commands using arbitrary cloud credentials and impersonate privileged users via unstripped HTTP headers. Fixed in versions 2.4.16 and 2.5.9.

A critical improper access control vulnerability exists in Rancher's `/meta/proxy` endpoint, allowing authenticated users to bypass authorization checks. By manipulating the proxy request, attackers can utilize cloud credentials they do not own and inject impersonation headers to escalate privileges. This flaw enables unauthorized modification of cloud infrastructure and potential cluster takeover.

Vulnerability Overview

CVE-2021-25320 is a critical improper access control vulnerability (CWE-284) affecting the Rancher container management platform. The flaw resides specifically within the /meta/proxy endpoint, a utility designed to proxy API requests to external cloud providers (such as AWS, Azure, or Google Cloud) to perform infrastructure operations. This endpoint is intended to simplify cloud resource management by attaching stored credentials to outgoing requests automatically.

The vulnerability stems from a failure to enforce authorization boundaries in two distinct ways. First, the application failed to verify that the user initiating the proxy request had permission to utilize the specified cloud credentials. Second, the proxy mechanism transparently forwarded sensitive headers, specifically Impersonate-User and Impersonate-Group, without sanitization. This allowed low-privileged users to manipulate the identity context of the request, effectively escalating their privileges to that of an administrator or other high-value accounts.

Root Cause Analysis

The root cause of this vulnerability lies in the implementation of the request forwarding logic within the Rancher API. When a user sends a request to /meta/proxy, they typically include a cloudCredentialId parameter. The system is designed to look up the corresponding secret, attach it to the request (e.g., as an Authorization header or signed query parameter), and forward the request to the cloud provider.

1. Missing Object-Level Authorization: The code correctly authenticated the user against the Rancher API but failed to perform an object-level permission check on the cloudCredentialId. The system retrieved the credential object based on the ID provided in the request but did not verify if the creatorId or RBAC bindings of the requesting user authorized them to use that specific credential. This meant any valid user could piggyback on the administrative cloud credentials stored in the system simply by knowing or guessing their ID.

2. Unsafe Header Forwarding: Rancher utilizes Impersonate-User headers for internal communication, allowing services to perform actions on behalf of users. The proxy implementation utilized a "pass-through" approach where headers from the incoming client request were copied to the outgoing proxy request. Because Impersonate-User and Impersonate-Group headers were not explicitly denylisted or stripped, an attacker could manually inject these headers. If the downstream service or a loopback request trusted these headers, the action would be performed under the identity of the target user rather than the actual requester.

Code Analysis & Remediation Logic

The remediation for CVE-2021-25320 involved distinct changes to the request handling pipeline in the Rancher source code. The fixes were applied in the meta package where the proxy logic resides.

Before the Fix: The logic flowed linearly: receive request, extract cloudCredentialId, retrieve credential, sign request, and forward. There was no step to validate the relationship between User and Credential.

The Fix Implementation: The patch introduced a mandatory permission check and a header sanitization step. The logic flow was altered as follows:

// Pseudo-code representation of the fix logic
func (h *Handler) Proxy(rw http.ResponseWriter, req *http.Request) {
    // 1. Validate the user has 'use' permissions on the specific credential
    credID := req.URL.Query().Get("cloudCredentialId")
    credential, err := h.credentialStore.Get(credID)
    
    // NEW: Access Control Check
    if !h.accessControl.CanUse(req.Context(), credential) {
        http.Error(rw, "Forbidden", http.StatusForbidden)
        return
    }
 
    // 2. Prepare the outgoing request
    outReq := new(http.Request)
    *outReq = *req
    
    // NEW: Header Sanitization
    // Explicitly remove impersonation headers to prevent privilege escalation
    outReq.Header.Del("Impersonate-User")
    outReq.Header.Del("Impersonate-Group")
    
    // 3. Attach credentials and forward
    attachCredentials(outReq, credential)
    h.reverseProxy.ServeHTTP(rw, outReq)
}

This change ensures that even if an attacker knows a valid cloudCredentialId, the request is blocked immediately if they lack the RBAC permission to use it. Furthermore, the removal of impersonation headers neutralizes the identity spoofing vector.

Exploitation Methodology

Exploiting this vulnerability requires a valid, low-privileged account within the Rancher cluster. The attack does not require direct access to the cloud provider's console, only network access to the Rancher API.

1. Credential Enumeration: The attacker first needs a valid cloudCredentialId. In many Rancher setups, credential IDs may be predictable or leaked via other metadata endpoints accessible to authenticated users (e.g., cr-xxxxx).

2. Request Crafting: The attacker constructs an HTTP request to the proxy endpoint. A typical exploit request would look like this:

GET /meta/proxy/https://ec2.us-west-2.amazonaws.com/?Action=DescribeInstances HTTP/1.1
Host: rancher-target.local
Cookie: R_SESS=...
Impersonate-User: admin

In the URL, the attacker appends the cloudCredentialId parameter pointing to an administrative credential set (e.g., ?cloudCredentialId=cc-admin).

3. Execution: Rancher receives the request. Due to the vulnerability, it ignores that the current session belongs to a low-privileged user. It accepts the Impersonate-User: admin header and attaches the AWS keys associated with cc-admin. The request is forwarded to AWS. AWS executes the action (e.g., listing instances, terminating VMs) assuming the request is legitimate. The response is then piped back to the attacker.

Impact Assessment

The impact of CVE-2021-25320 is rated as Critical (CVSS 9.9) due to the complete bypass of access controls and the potential for lateral movement from the management plane to the cloud infrastructure.

Confidentiality: Attackers can use stolen credentials to read sensitive data from cloud providers, such as S3 buckets, database connection strings, or secret keys managed by the cloud environment.

Integrity: With write access to the cloud API, attackers can modify infrastructure. This includes modifying security groups to allow external access, deploying malicious compute instances (cryptominers), or tampering with existing workloads.

Availability: The most immediate threat is the destruction of resources. An attacker could issue TerminateInstances or DeleteVolume calls, causing catastrophic data loss and service outages for applications running on the managed clusters.

Remediation Guidance

The vulnerability is patched in Rancher versions 2.4.16 and 2.5.9. Administrators must upgrade immediately. There are no viable configuration workarounds that do not involve restricting access to the Rancher API itself, which may break functionality.

Upgrade Paths:

  • If using Rancher 2.4.x, upgrade to 2.4.16 or later.
  • If using Rancher 2.5.x, upgrade to 2.5.9 or later.

Post-Incident Activity: After patching, security teams should rotate all cloud credentials stored within Rancher. Since the vulnerability allowed the use of credentials without logging the true unauthorized context effectively, it is prudent to assume credentials may have been exposed or misused. Review cloud provider logs (e.g., AWS CloudTrail) for anomalous API calls originating from the Rancher IP address during the window of exposure.

Official Patches

SUSERancher Security Advisories

Fix Analysis (2)

Technical Appendix

CVSS Score
9.9/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
EPSS Probability
0.20%
Top 100% most exploited

Affected Systems

Rancher v2.4.x prior to 2.4.16Rancher v2.5.x prior to 2.5.9

Affected Versions Detail

Product
Affected Versions
Fixed Version
Rancher
SUSE
< 2.4.162.4.16
Rancher
SUSE
< 2.5.92.5.9
AttributeDetail
CWE IDCWE-284 (Improper Access Control)
CVSS v3.19.9 (Critical)
Attack VectorNetwork
EPSS Score0.00199 (0.20%)
Privileges RequiredLow
Exploit StatusPoC Available

MITRE ATT&CK Mapping

T1078Valid Accounts
Initial Access
T1134Access Token Manipulation
Privilege Escalation
T1550Use Alternate Authentication Material
Defense Evasion
CWE-284
Improper Access Control

Vulnerability Timeline

Vulnerability reported to SUSE/Rancher
2021-04-30
CVE-2021-25320 assigned
2021-05-03
Patched versions 2.4.16 and 2.5.9 released
2021-07-15
Public disclosure
2021-07-15

References & Sources

  • [1]SUSE Bugzilla Report
  • [2]NVD Record for CVE-2021-25320
  • [3]CISA Bulletin SB21-200

More Reports

•22 minutes ago•CVE-2026-54348
7.2

CVE-2026-54348: Second-Order SQL Injection in Froxlor API Layer

An authenticated administrator with privileges to manage admin accounts (such as change_serversettings) can execute arbitrary SQL commands via a second-order SQL injection vulnerability. The flaw resides in Froxlor's administrative API endpoints, specifically during the handling of IP address mapping parameters which are stored as serialized arrays and later interpolated without sanitization into active database queries. This vulnerability allows high-privileged administrative attackers to compromise the database. By injecting a payload into administrative profile metadata, an attacker can extract sensitive credentials, manipulate backend settings, or potentially disrupt database integrity. The vulnerability affects all versions of Froxlor prior to 2.3.8.

Amit Schendel
Amit Schendel
0 views•6 min read
•about 1 hour ago•CVE-2026-54543
5.4

CVE-2026-54543: DNS Resource Record (RR) Injection in Froxlor DomainZones API

CVE-2026-54543 is a DNS Resource Record (RR) Injection vulnerability in Froxlor, an open-source server administration control panel. Prior to version 2.3.8, the DomainZones.add API command failed to perform strict sanitization and validation on the user-controlled record (label) and type parameters before serializing them into BIND-compatible zone files. An authenticated customer with DNS zone management permissions can inject control characters, breaking out of the original record context to define unauthorized resource records within managed zones.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 2 hours ago•CVE-2026-42533
9.2

CVE-2026-42533: NGINX Map Directive and Regex Matching Pre-Auth Heap Buffer Overflow & Info Leak

CVE-2026-42533 is a critical security vulnerability discovered in NGINX Open Source, NGINX Plus, NGINX Ingress Controller, and related products, referred to as the 'Two-Pass Capture-Clobbering' bug. The flaw is situated within NGINX's internal evaluation engine when handling complex variables, exposing a heap-based buffer overflow and information leak when a configuration chains regular expression-based map directives with numbered capture groups. An unauthenticated remote attacker can exploit this weakness by transmitting crafted HTTP requests to trigger remote code execution or defeat ASLR.

Alon Barad
Alon Barad
4 views•7 min read
•about 2 hours ago•CVE-2026-55593
6.5

CVE-2026-55593: Persistent Administrative Hijacking via Cross-Site Request Forgery in Froxlor Ajax Router

Froxlor prior to version 2.3.8 contains a high-severity architectural flaw where the standalone lib/ajax.php entry point bypasses the centralized request validation in lib/init.php. Unauthenticated remote attackers can leverage Cross-Site Request Forgery (CSRF) to induce authenticated administrators to submit forged requests that modify API key whitelists and expiration dates, potentially yielding persistent, out-of-band administrative control.

Amit Schendel
Amit Schendel
2 views•8 min read
•about 3 hours ago•CVE-2026-62988
9.0

CVE-2026-62988: Multi-Factor Authentication and Credential Bypass in Froxlor API

An insecure data retrieval flaw in the Froxlor server administration panel API allows authenticated remote attackers to retrieve unredacted bcrypt password hashes and Base32-encoded Time-Based One-Time Password (TOTP) seeds. Affected endpoints include several 'get' and 'listing' handlers for customers, administrators, and FTP accounts. Utilizing these leaked parameters, attackers can crack the password hashes offline and concurrently generate valid second-factor authentication codes to completely bypass access controls.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 4 hours ago•CVE-2026-70666
7.4

CVE-2026-70666: Server-Side Request Forgery in Netflix Lemur ACME Authority Management

CVE-2026-70666 is a critical Server-Side Request Forgery (SSRF) vulnerability in Netflix Lemur's ACME certificate management integration. Prior to version 1.9.3, the system allowed authority-role users to bypass initial ACME URL allowlist validations when updating an existing authority. Additionally, the underlying ACME network client blindly parsed and connected to dynamic endpoint URLs supplied in JSON responses from the configured ACME directory, allowing attackers to route arbitrary JWS-signed requests to internal services or cloud metadata endpoints.

Alon Barad
Alon Barad
4 views•5 min read