Description
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.
Published: 2026-08-12
Score: 8.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

RustFS evaluates policy qualifiers incorrectly when negated string operators are used with ForAllValues: and ForAnyValue:. As a result, permissions can be unintentionally granted or denied. This can allow a principal that should be denied access to obtain it, or allow a request that should be blocked to succeed, directly violating confidentiality, integrity, or availability requirements. The flaw is a form of access control bypass (CWE-863).

Affected Systems

RustFS installations running version 1.0.0-beta.11 or earlier are vulnerable; the issue was fixed in 1.0.0-beta.12. All deployments that evaluate IAM or bucket policies with negated string operators using ForAllValues: and ForAnyValue: fall under the affected scope.

Risk and Exploitability

The vulnerability carries a CVSS score of 8.1, indicating high severity. EPSS data is not available, and the vulnerability is not listed in the CISA KEV catalog, so the precise exploitation likelihood is unclear. However, an attacker who can influence policy content or request values could exploit the mis‑evaluation to bypass intended restrictions, enabling unauthorized data access or violation of security controls. Prompt remediation is recommended for systems exposed to external users or untrusted policy sources.

Generated by OpenCVE AI on August 13, 2026 at 00:07 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade RustFS to version 1.0.0-beta.12 or newer.
  • Avoid using ForAllValues: and ForAnyValue: with negated string operators (StringNotEquals, StringNotEqualsIgnoreCase, StringNotLike, ArnNotEquals, ArnNotLike) in IAM or bucket policies until the patch is applied; use alternative logic that preserves intended semantics.
  • Audit all existing policies that employ these operators to identify any that could permit unintended access, and adjust them accordingly.

Generated by OpenCVE AI on August 13, 2026 at 00:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 12 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
First Time appeared Rustfs
Rustfs rustfs
Vendors & Products Rustfs
Rustfs rustfs

Wed, 12 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 12 Aug 2026 15:00:00 +0000

Type Values Removed Values Added
Description 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.
Title RustFS: ForAllValues/ForAnyValue negated string conditions are transposed, inverting IAM and bucket-policy decisions
Weaknesses CWE-863
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-12T15:06:25.022Z

Reserved: 2026-08-11T19:42:11.450Z

Link: CVE-2026-73289

cve-icon Vulnrichment

Updated: 2026-08-12T15:06:20.323Z

cve-icon NVD

Status : Received

Published: 2026-08-12T15:18:32.733

Modified: 2026-08-12T15:18:32.733

Link: CVE-2026-73289

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T00:15:04Z

Weaknesses