Skip to main content

RustFS CVE-2026-45039

| EUVDEUVD-2026-32998 CRITICAL
Use of Hard-coded Credentials (CWE-798)
2026-05-28 GitHub_M
9.8
CVSS 3.1 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify exposed RustFS RPC port
  2. Delivery
    Read DEFAULT_SECRET_KEY from public source
  3. Exploit
    Forge HMAC-SHA256 signed RPC request
  4. Execution
    Submit request to internode endpoint
  5. Persist
    Cluster accepts forged authentication
  6. Impact
    Read, modify, or destroy stored objects

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Credential externalization
MITRE ATT&CK

2 techniques across 2 tactics: Persistence, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires network reachability to a RustFS node's internode RPC interface on a deployment running a version prior to 1.0.0-beta.2 where neither the RUSTFS_RPC_SECRET environment variable nor a global S3 secret key has been configured, causing get_shared_secret() to return the hardcoded 'rustfsadmin' default. No authentication, user interaction, or non-default toggling is required beyond the operator's failure to set either secret - the vulnerable fallback is the out-of-the-box behavior. Exploitation is limited where operators have explicitly provisioned RUSTFS_RPC_SECRET or a global S3 key, or where the internode RPC port is isolated to a private network not reachable by the attacker.

Impact

The CVSS:3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H supports the 9.8 score - fully remote, low-complexity, no authentication, no user interaction, with high impact across confidentiality, integrity, and availability of the storage backend. EPSS, KEV status, and SSVC decision data were not provided in the input, so probabilistic exploitation prediction cannot be cited; however, the hardcoded secret is in plain text in a public GitHub repository, meaning exploit development requires no reverse engineering and the effective barrier to weaponization is near zero. Real-world risk is gated by deployment hygiene: clusters that explicitly set RUSTFS_RPC_SECRET or a global S3 key are not vulnerable, so the realistic blast radius depends on the prevalence of default-configuration RustFS deployments exposed on routable networks. No public exploit identified at time of analysis, but defenders should treat this as high-priority given the trivial conceptual exploit and the sensitivity of object storage workloads.

Exploit ScenarioDerived

An attacker who can reach a RustFS node's internode RPC port over the network computes HMAC-SHA256 signatures using the publicly known 'rustfsadmin' string as the shared secret and issues forged RPC calls that the cluster accepts as authentic. From this position the attacker can manipulate stored objects, exfiltrate data, or disrupt cluster operations, achieving full confidentiality, integrity, and availability impact without prior credentials or user interaction.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 28, 2026

Authentication bypass in RustFS distributed object storage (versions prior to 1.0.0-beta.2) allows unauthenticated remote attackers to forge valid internode RPC requests by exploiting a hardcoded fallback secret 'rustfsadmin' used when neither RUSTFS_RPC_SECRET nor the global S3 secret key is configured. With a CVSS of 9.8 and full CIA impact, this represents a critical pre-auth compromise vector against the storage cluster's internal trust boundary. No public exploit identified at time of analysis, though the fallback secret is publicly visible in the source tree, making weaponization trivial.

RemediationAI

Upgrade RustFS to 1.0.0-beta.2 or later, which removes the insecure fallback in get_shared_secret() - this is the vendor-released patch and the primary remediation, documented at https://github.com/rustfs/rustfs/security/advisories/GHSA-r5qv-rc46-hv8q. As an interim workaround for operators who cannot immediately upgrade, explicitly set the RUSTFS_RPC_SECRET environment variable (or configure a non-default global S3 secret key) to a strong random value on every node so the vulnerable fallback path is never taken; verify configuration by confirming that 'rustfsadmin' does not appear in any runtime secret material. Additionally, restrict network exposure of the internode RPC endpoints to a private management network or firewall them off from untrusted networks, accepting the side effect that this complicates multi-region or multi-tenant topologies that may rely on broader reachability.

Affected VersionsENISA

rustfs < 1.0.0-beta.2

Affected Packages

euvd rustfs fix: 1.0.0-beta.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

RustFS is a Rust-implemented distributed object storage system providing an S3-compatible interface, where cluster nodes communicate over an internode RPC layer authenticated via HMAC-SHA256 signatures derived from a shared secret. The flaw resides in get_shared_secret() within crates/ecstore/src/rpc/http_auth.rs, which falls back to the constant DEFAULT_SECRET_KEY = 'rustfsadmin' embedded directly in the source tree when neither the RUSTFS_RPC_SECRET environment variable nor a global S3 secret key has been provisioned. This pattern aligns with CWE-798 (Use of Hard-coded Credentials): because the fallback value is publicly known to anyone who reads the open-source repository, the HMAC signature scheme collapses into a trivially forgeable authentication mechanism for any operator who did not explicitly configure a secret.

Know when Rustfs gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

GitHub Advisory PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

1
Patch available
May 28, 2026 - 20:02 EUVD

DescriptionGitHub Advisory

RustFS is a distributed object storage system built in Rust. Prior to 1.0.0-beta.2, the internode RPC layer authenticates every request with an HMAC-SHA256 signature using a shared secret. The function that produces this secret, get_shared_secret() in crates/ecstore/src/rpc/http_auth.rs, falls back to the public, source-tree-embedded DEFAULT_SECRET_KEY = "rustfsadmin" when neither the RUSTFS_RPC_SECRET environment variable nor the global S3 secret key has been configured. This vulnerability is fixed in 1.0.0-beta.2.

Executive ViewAI

Why It Matters

RustFS distributed object storage (versions prior to 1.0.0-beta.2) permits any networked attacker to bypass authentication and assume full administrative control of storage clusters without credentials. Attackers can read, modify, or destroy all stored data, creating immediate risk of data loss, breach, and regulatory violation. Organizations with RustFS deployments require urgent mitigation to prevent complete compromise of stored data.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Enforce network segmentation and firewall rules to restrict RustFS cluster access to trusted internal networks only; implement zero-trust access controls for external connectivity; (2) Configure RUSTFS_RPC_SECRET and global S3 secret key environment variables on all RustFS instances to eliminate fallback to hardcoded 'rustfsadmin' credential; (3) Deploy continuous monitoring and alerting on RPC traffic for anomalous internode communication patterns; (4) Maintain encrypted, offline backups of all data stored in affected RustFS instances. These mitigations reduce exploit risk but do not eliminate vulnerability - patching or upgrade remains mandatory for full remediation.

Threat Intelligence Overview

EPSS Score
0.0%
Top 87% exploitable
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Rustfs

View all
CVE-2026-22043 CRITICAL POC
9.8 Jan 08

RustFS (alpha.13 to alpha.78) has a privilege escalation where restricted service accounts can self-issue unrestricted c

CVE-2026-27822 CRITICAL POC
9.0 Feb 25

Stored XSS in RustFS distributed object storage system before 1.0.0-alpha.83. Malicious JavaScript persists in stored ob

CVE-2026-22042 HIGH POC
8.8 Jan 08

Incorrect IAM permission validation in RustFS prior to version 1.0.0-alpha.79 permits principals with export-only permis

CVE-2025-68705 HIGH POC
8.8 Jan 07

Path traversal in the RustFS /rustfs/rpc/read_file_stream endpoint allows an attacker to read arbitrary files from the h

CVE-2026-22782 HIGH POC
7.5 Jan 16

RustFS versions 1.0.0-alpha.1 through 1.0.0-alpha.79 expose the shared HMAC secret in server logs when processing invali

CVE-2025-69255 MEDIUM POC
5.5 Jan 07

RustFS is a distributed object storage system built in Rust. [CVSS 4.0 MEDIUM]

CVE-2026-45043 CRITICAL
9.3 May 29

Privilege escalation in RustFS distributed object storage before 1.0.0-beta.2 lets a low-privileged user holding ImportI

CVE-2026-62378 CRITICAL
9.0 Jul 15

Stored cross-site scripting in RustFS Console (0.1.7 through 0.1.9) lets an attacker upload an HTML payload disguised as

CVE-2026-73284 HIGH
8.8 Aug 12

Privilege escalation in RustFS prior to version 1.0.0-beta.11 allows any authenticated user holding CreateServiceAccount

CVE-2026-45044 HIGH
8.8 May 28

Unauthenticated denial of service and information disclosure in RustFS distributed object storage prior to version 1.0.0

CVE-2026-45041 HIGH
8.7 May 28

License-enforcement bypass in RustFS distributed object storage (versions prior to 1.0.0-beta.2) stems from a hardcoded

CVE-2026-49991 HIGH
8.6 Jun 26

Cross-tenant object injection in RustFS 1.0.0-beta.4 lets a tenant holding only PutObject rights on their own bucket wri

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy