Skip to main content

RustFS CVE-2026-73289

| EUVDEUVD-2026-57234 HIGH
Incorrect Authorization (CWE-863)
2026-08-12 GitHub_M
8.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with low-privilege credentials
  2. Delivery
    Inspect target bucket policy for ForAllValues:StringNotEquals or ArnNotEquals on jwt:groups/jwt:roles
  3. Exploit
    Craft JWT or request with partially overlapping group/role values
  4. Execution
    Submit request to restricted resource
  5. Persist
    Inverted quantifier logic causes Deny guardrail to evaluate as Allow
  6. Impact
    Access confidential or writable resource

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
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 that the target RustFS deployment has at least one IAM policy using ForAllValues: or ForAnyValue: set qualifiers in combination with one of the five negated operators: StringNotEquals, StringNotEqualsIgnoreCase, StringNotLike, ArnNotEquals, or ArnNotLike. The attacker must be authenticated (CVSS PR:L - unauthenticated exploitation is not enabled by this flaw). The triggering condition further requires that the attacker's request values partially overlap with the policy's condition values - a fully disjoint or fully overlapping value set may not invert the result. Policies that use only non-negated operators (StringEquals, StringLike, ArnEquals) are entirely unaffected. Absent condition keys in requests (e.g., no jwt:groups claim present) also receive inverted ForAllValues/ForAnyValue treatment, which can cause vacuously-satisfied ForAllValues conditions to fail or vice versa. Deployments using jwt:groups or jwt:roles for RBAC-style group enforcement with negated exclusion conditions are the highest-risk configurations.

Impact

The official CVSS 8.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N) reflects network-accessible exploitation requiring only low-privilege authentication, with high confidentiality and integrity impact. However, AC:L warrants scrutiny: the vulnerability only activates when target IAM policies are specifically configured with negated operators (StringNotEquals, StringNotLike, etc.) combined with ForAllValues: or ForAnyValue: set qualifiers - this is not a default or ubiquitous configuration pattern. An independent assessment of AC:H is more appropriate, as the attacker depends on a non-default policy structure being present in the target environment. No EPSS data was provided in the input; exploitation probability is inferred as low-to-moderate given the policy configuration dependency. There is no CISA KEV listing, and no public exploit code is known. The product is in pre-1.0 beta, constraining real-world exposure. The most realistic high-risk scenario involves organizations using jwt:groups or jwt:roles for RBAC enforcement, where a Deny guardrail using ForAllValues:StringNotEquals silently inverts to an Allow.

Exploit ScenarioDerived

An authenticated low-privilege user identifies that a restrictive Deny policy uses ForAllValues:StringNotEquals on the jwt:groups condition key to exclude their group from a sensitive bucket. Because the policy engine incorrectly negates the aggregate result rather than each predicate, submitting a request with a jwt:groups claim that partially overlaps the excluded set causes the Deny evaluation to return the wrong boolean, and the request is permitted instead of denied. No public exploit code exists, but the logic inversion is mechanically predictable from the description.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 12, 2026

Policy engine logic in RustFS incorrectly swaps ForAllValues: and ForAnyValue: set-qualifier semantics when paired with negated condition operators (StringNotEquals, StringNotLike, ArnNotEquals, ArnNotLike, StringNotEqualsIgnoreCase), allowing authenticated low-privilege users to bypass IAM-style access controls in versions prior to 1.0.0-beta.12. The root cause is that negation is applied to the aggregate quantifier result rather than to each individual request-value predicate before quantification, meaning partially overlapping policy and request value sets can cause an explicit Deny guardrail to evaluate as Allow - including policies controlling access via jwt:groups and jwt:roles claims. No public exploit has been identified at time of analysis, but the flaw directly undermines the authorization boundary for any deployment relying on negated set-qualifier conditions.

RemediationAI

Upgrade to RustFS 1.0.0-beta.12 or later; the patched release is available at https://github.com/rustfs/rustfs/releases/tag/1.0.0-beta.12, corresponding to commit 92f83bfe155d8a3b9cdd903086e5b28d52339efb. If an immediate upgrade is not possible, audit all IAM policies in use and identify any that pair ForAllValues: or ForAnyValue: qualifiers with negated operators (StringNotEquals, StringNotEqualsIgnoreCase, StringNotLike, ArnNotEquals, ArnNotLike). Rewrite those conditions using equivalent non-negated logic (e.g., replace a Deny with ForAllValues:StringNotEquals with an explicit Allow using StringEquals covering only the permitted values) - note this approach requires policy restructuring and careful testing to preserve intended access semantics. Pay particular attention to policies using jwt:groups and jwt:roles condition keys, as these are called out in the advisory as specifically affected. Absent condition keys must also be re-evaluated, as they receive inverted ForAllValues/ForAnyValue treatment in vulnerable versions.

Affected VersionsENISA

rustfs < 1.0.0-beta.12

Affected Packages

euvd rustfs fix: 1.0.0-beta.12

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 AWS S3-compatible IAM policy engine in Rust, using condition functions defined in crates/policy/src/policy/function/string.rs. The bug involves two orthogonal axes of condition evaluation: the condition operator (e.g., StringNotEquals) and the set qualifier (ForAllValues: or ForAnyValue:). ForAllValues: is satisfied when every request value satisfies the operator predicate; ForAnyValue: is satisfied when at least one does. For negated operators, correct semantics require applying negation per individual request-value predicate before the quantifier aggregates results - i.e., NOT(predicate(v)) for each v, then AND/OR across all v. The vulnerable code instead evaluates the positive predicate across all values, takes the aggregate boolean, then negates it - mathematically equivalent to swapping ForAllValues and ForAnyValue. The fix (commit 92f83bfe) introduces a Quantifier enum (None, ForAnyValue, ForAllValues) replacing a boolean for_all parameter, ensuring correct per-predicate negation. CWE-863 (Incorrect Authorization) describes the class: the system performs authorization checks but the logic is wrong, producing incorrect access decisions. Affected CPE is cpe:2.3:a:rustfs:rustfs:*:*:*:*:*:*:*:*.

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 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 6.8 MEDIUM

AC:H because exploitation depends on non-default policy configurations using negated set-qualifier operators; PR:L because authentication is required per description and CVSS input.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/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
High
Availability
None

Lifecycle Timeline

2
Patch available
Aug 12, 2026 - 16:02 EUVD
CVE Published
Aug 12, 2026 - 14:43 cve.org
HIGH 8.1

DescriptionCVE.org

RustFS is a distributed object storage system built in Rust. Prior to 1.0.0-beta.12, RustFS evaluates the ForAllValues: and ForAnyValue: set qualifiers with the negated string operators StringNotEquals, StringNotEqualsIgnoreCase, StringNotLike, ArnNotEquals, and ArnNotLike using each other's semantics because crates/policy/src/policy/function/string.rs negates the aggregate result after eval or eval_like instead of negating each request-value predicate before quantification. Partially overlapping policy and request value sets can therefore make an Allow condition grant access to an excluded principal or make a Deny guardrail fail, including policies based on jwt:groups and jwt:roles; absent keys also receive the opposite ForAllValues: and ForAnyValue: behavior. This issue is fixed in version 1.0.0-beta.12.

Executive ViewAI

Why It Matters

RustFS policy engine deployments face an authorization logic flaw affecting versions before 1.0.0-beta.12 that allows authenticated users with limited privileges to bypass access controls. The vulnerability occurs when policies use negated set-qualifier conditions (such as StringNotEquals or ArnNotLike) for role or group-based access decisions, potentially enabling attackers to escalate privileges and access restricted resources. Organizations must immediately audit and remediate affected policy configurations.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) eliminate all negated set-qualifier conditions from policies, restructuring access decisions using explicit allow/deny rules based on positive group/role membership; (2) restrict policy configuration access to a minimal set of administrators; (3) implement continuous monitoring and alerting for authorization failures and unusual access patterns by lower-privileged accounts; (4) conduct periodic access reviews to verify that access grants match intended policies.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Low
pre-1.0 beta Rust storage project, niche enterprise 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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
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