Severity by source
AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N
Straightforward authenticated network API call (AC:L, PR:L); disclosed remote credentials affect a separate system (S:C, C:H), but this bug only reads data, so I:N/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
RustFS is a distributed object storage system built in Rust. From 1.0.0-alpha.1 until 1.0.0-beta.9, RustFS contains an authorization bypass in the bucket replication admin API. The ListRemoteTargetHandler handler for listing remote replication targets only checks whether request credentials exist, but does not verify that the caller has replication or administrator permissions. As a result, an authenticated user with no effective bucket or admin permissions can list remote replication target configuration for a bucket. Because the returned BucketTarget objects include remote target credentials, this can disclose replication access keys and secret keys. This vulnerability is fixed in 1.0.0-beta.9.
AnalysisAI
Information disclosure in RustFS, a Rust-based distributed object storage system, lets any authenticated user with no effective bucket or admin permissions read remote replication target configuration via the bucket replication admin API. Because the returned BucketTarget objects embed remote credentials, an attacker can harvest replication access keys and secret keys for downstream systems. The flaw affects 1.0.0-alpha.1 through versions prior to 1.0.0-beta.9 and is fixed in 1.0.0-beta.9; no public exploit identified at time of analysis.
Technical ContextAI
RustFS is an S3-compatible distributed object storage engine implemented in Rust, with an administrative API surface for managing bucket replication to remote targets. The defect lies in the ListRemoteTargetHandler, which services requests to enumerate a bucket's remote replication targets. Per CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), the root cause is a broken authorization check: the handler validates only that request credentials are present (authentication) but never confirms the caller holds replication or administrator authorization for the target bucket. The CPE cpe:2.3:a:rustfs:rustfs identifies the affected application across all listed pre-beta.9 versions. Because BucketTarget structures carry the access key and secret key used to authenticate to the remote replication endpoint, the missing authZ gate turns a routine listing call into a credential-disclosure primitive.
RemediationAI
Vendor-released patch: 1.0.0-beta.9 - upgrade all RustFS instances to 1.0.0-beta.9 or later, as documented in advisory GHSA-796f-j7xp-hwf4 (https://github.com/rustfs/rustfs/security/advisories/GHSA-796f-j7xp-hwf4). Because the exposed data is reusable credentials, treat any pre-patch exposure as a compromise and rotate the access keys and secret keys of every configured remote replication target after upgrading. If immediate patching is impossible, compensating controls include restricting which accounts can authenticate to the RustFS admin API and tightening IAM/policy so only trusted operators hold credentials at all (since the bug grants access to any authenticated principal, shrinking the set of authenticated users directly reduces the attack surface), and temporarily unconfiguring remote replication targets so no credentials are stored to leak (trade-off: replication stops, breaking cross-site data redundancy until restored). Network-restricting the admin API endpoint to a management subnet limits who can reach the handler but does not protect against an already-trusted authenticated insider.
RustFS (alpha.13 to alpha.78) has a path traversal in /rustfs/rpc/read_file_stream that allows reading arbitrary files o
RustFS (alpha.13 to alpha.78) has a privilege escalation where restricted service accounts can self-issue unrestricted c
Stored XSS in RustFS distributed object storage system before 1.0.0-alpha.83. Malicious JavaScript persists in stored ob
Incorrect IAM permission validation in RustFS prior to version 1.0.0-alpha.79 permits principals with export-only permis
RustFS versions 1.0.0-alpha.1 through 1.0.0-alpha.79 expose the shared HMAC secret in server logs when processing invali
Authentication bypass in RustFS distributed object storage (versions prior to 1.0.0-beta.2) allows unauthenticated remot
Privilege escalation in RustFS distributed object storage before 1.0.0-beta.2 lets a low-privileged user holding ImportI
Stored cross-site scripting in RustFS Console (0.1.7 through 0.1.9) lets an attacker upload an HTML payload disguised as
Privilege escalation in RustFS prior to version 1.0.0-beta.11 allows any authenticated user holding CreateServiceAccount
Unauthenticated denial of service and information disclosure in RustFS distributed object storage prior to version 1.0.0
License-enforcement bypass in RustFS distributed object storage (versions prior to 1.0.0-beta.2) stems from a hardcoded
Cross-tenant object injection in RustFS 1.0.0-beta.4 lets a tenant holding only PutObject rights on their own bucket wri
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39866