Skip to main content

RustFS CVE-2026-73265

| EUVDEUVD-2026-57227 MEDIUM
Missing Authorization (CWE-862)
2026-08-12 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain IAM credential with s3:GetObject grant
  2. Delivery
    Identify target bucket with versioning enabled
  3. Exploit
    Enumerate or infer a historical versionId
  4. Execution
    Send GetObject/CopyObject/UploadPartCopy request with explicit versionId
  5. Persist
    RustFS authorizes incorrectly against s3:GetObject
  6. Impact
    Historical object version content disclosed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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

Exploitation Conditions

Exploitation requires an authenticated IAM principal holding at least s3:GetObject permission on the target bucket or object prefix - unauthenticated access is not possible, as confirmed by PR:L in the CVSS vector. The RustFS deployment must have S3 object versioning enabled on the target bucket; without versioning, there are no historical versions to disclose. IAM policies must differentiate between s3:GetObject and s3:GetObjectVersion for the exposure to be meaningful - deployments that grant both actions uniformly are not further harmed. The attacker must know or be able to enumerate a valid versionId for a specific historical object; versionId discovery may require list-version permissions (s3:ListBucketVersions), which is an additional prerequisite if the versionId is not otherwise known. The bypass is limited strictly to confidentiality: no write, delete, or administrative capability is obtained through this flaw.

Impact

The CVSS 6.5 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) accurately characterizes the threat profile: the attack is network-accessible with low complexity, requires only a low-privilege IAM credential, and produces high confidentiality impact while leaving integrity and availability unaffected. Real-world impact is bounded by two deployment prerequisites: object versioning must be enabled on the target bucket, and IAM policies must distinguish between s3:GetObject and s3:GetObjectVersion grants - environments that issue broad, undifferentiated S3 access see no effective exposure. EPSS data is absent from the provided intelligence, so a numerical exploitation probability cannot be stated. The vulnerability is not listed in CISA KEV. No public exploit code is identified. The PR diff confirms the flaw was straightforward to introduce and equally straightforward to exploit by any credential holder aware of a target versionId, suggesting low attack complexity in permissive-but-not-fully-permissive IAM environments.

Exploit ScenarioDerived

An IAM principal configured with s3:GetObject but explicitly denied s3:GetObjectVersion sends a standard GetObject HTTP request to RustFS with a known versionId query parameter targeting a sensitive historical object version. RustFS evaluates the IAM check against s3:GetObject rather than s3:GetObjectVersion, the principal passes authorization, and the historical object content is returned in the response body. No exploit tooling beyond a standard S3-compatible client (e.g., aws-cli, boto3, or curl with the appropriate query string) is needed.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 12, 2026

Versioned object access control bypass in RustFS allows authenticated principals holding only s3:GetObject permission to read historical object versions by supplying an explicit versionId parameter on GetObject, CopyObject source, or UploadPartCopy source requests. The authorization boundary in access.rs conflated two distinct IAM actions - s3:GetObject and s3:GetObjectVersion - by always evaluating versioned reads against the former, effectively collapsing a privileged historical-version operation into an ordinary current-object read. No active exploitation has been confirmed (not in CISA KEV), and no public exploit code has been identified; however, the bypass is trivial to exercise for any valid IAM credential with bucket read access.

RemediationAI

Upgrade RustFS to version 1.0.0-beta.11 or later, which contains the corrected authorization logic applied across all three affected code paths in rustfs/src/storage/access.rs, as detailed in PR #5142 (https://github.com/rustfs/rustfs/pull/5142) and commit 81665617029e5e437ecf9dc70d8dcbbbf80cdbd1. The vendor advisory is at https://github.com/rustfs/rustfs/security/advisories/GHSA-3ppv-fx5m-m749. If immediate upgrade is not feasible, two compensating controls apply: first, audit IAM policies and ensure no principal is granted s3:GetObject on sensitive buckets without also explicitly granting s3:GetObjectVersion - this removes the practical impact of the bypass because the authorization gap only matters when the two actions carry different grants; second, temporarily disabling object versioning on sensitive buckets eliminates the historical-version attack surface, at the cost of losing version history protection and recoverability from accidental overwrites or deletes.

Affected VersionsENISA

rustfs < 1.0.0-beta.11

Affected Packages

euvd rustfs fix: 1.0.0-beta.11

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 implements an S3-compatible IAM authorization model that mirrors AWS S3's distinction between s3:GetObject (read the current/latest version of an object) and s3:GetObjectVersion (read a specific historical object version). In versioned S3-compatible buckets, multiple revisions of the same key coexist; accessing a non-current version via an explicit versionId query parameter is intentionally gated behind the more privileged s3:GetObjectVersion action. The flaw (CWE-862: Missing Authorization) resided in rustfs/src/storage/access.rs, where the authorize_request call for all three affected operations - GetObject, CopyObject source selection, and UploadPartCopy source selection - unconditionally passed S3Action::GetObjectAction regardless of whether a versionId was present in the request. The fix introduced a versioned_read_action() function that inspects the versionId parameter and returns S3Action::GetObjectVersionAction when an explicit version is named, or S3Action::GetObjectAction when no version is specified. CPE string cpe:2.3:a:rustfs:rustfs:*:*:*:*:*:*:*:* confirms the flaw spans all releases prior to 1.0.0-beta.11.

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

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

S3 API is network-reachable with low complexity; exploitation requires a valid IAM credential (PR:L); impact is confidentiality-only via historical version disclosure with no integrity or availability effect.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Aug 12, 2026 - 16:02 EUVD

DescriptionCVE.org

RustFS is a distributed object storage system built in Rust. RustFS authorizes explicit versionId reads in GetObject, CopyObject sources, and UploadPartCopy sources with s3:GetObject instead of s3:GetObjectVersion, allowing principals without historical-version permission to disclose known historical object content. This issue is fixed in version 1.0.0-beta.11.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Rare
emerging Rust-based S3-compatible storage, limited production adoption
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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-2026-45039 CRITICAL
9.8 May 28

Authentication bypass in RustFS distributed object storage (versions prior to 1.0.0-beta.2) allows unauthenticated remot

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

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