HIGH 8.6

CVE-2026-49991: RustFS Multi-Tenant Isolation Bypass via Path Traversal in Snowball

RustFS 1.0.0-beta.4 contains a critical flaw in its Snowball auto-extract feature that allows authenticated users to bypass multi-tenant isolation. An attacker with only the permission to upload files to their own bucket can manipulate file paths during extraction to write files into other users' buckets, compromising data confidentiality and integrity across the entire system. The vulnerability exploits a chain of three separate validation failures in path handling and permission checking.

Source data · NVD / CISA · public domain

CVSS
3.1 · 8.6 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N
Weaknesses (CWE)
CWE-22, CWE-862
Affected products
0 configuration(s)
Published / Modified
2026-06-26 / 2026-06-29

NVD description (verbatim)

RustFS is a distributed object storage system built in Rust. In 1.0.0-beta.4, authenticated users with only PutObject permission on their own bucket can exploit a path traversal vulnerability in the Snowball auto-extract feature to write arbitrary objects into other users' buckets, completely breaking multi-tenant isolation. The vulnerability chains three flaws: No ../ sanitization in tar entry key normalization; IAM wildcard matching uses raw (uncleaned) paths; and Filesystem path cleaning resolves ../ across bucket boundaries.

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability stems from three coupled flaws in RustFS's tar extraction and permission model. First, tar entry keys are normalized without removing path traversal sequences (../ patterns). Second, the IAM wildcard matching engine evaluates permissions against these unsanitized paths, failing to enforce bucket boundaries. Third, the underlying filesystem path cleaning resolves traversal sequences across bucket mount points, allowing a user with PutObject permission on their own bucket to extract tar archives that place objects in other tenants' buckets. The flaw is rooted in CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) and CWE-862 (Missing Authorization), and affects RustFS version 1.0.0-beta.4.

Business impact

Multi-tenant isolation is broken. Any authenticated user can read, modify, or corrupt other users' data without explicit permission. In cloud storage deployments, this represents total loss of tenant privacy guarantees, regulatory compliance violations (HIPAA, GDPR, PCI-DSS), and potential data exfiltration at scale. Enterprises relying on RustFS for tenant separation must assume all buckets are compromised by any authenticated user.

Affected systems

RustFS version 1.0.0-beta.4. The vulnerability requires the Snowball auto-extract feature to be enabled and accessible to authenticated users. No other versions are confirmed affected by the provided data; verify against the vendor advisory for the full scope of affected releases.

Exploitability

Exploitability is straightforward. The attack requires only valid authentication credentials and the ability to upload a malicious tar archive to one's own bucket. No elevated privileges, special role, or admin access is needed—any authenticated user with PutObject permission can exploit it. The attack is reliable and leaves minimal forensic artifacts in typical logging configurations, as the extraction process operates within the IAM policy evaluation framework itself.

Remediation

Immediately disable the Snowball auto-extract feature on all RustFS deployments until a patched version is available. Verify against the vendor advisory for the specific patched version number and timeline. If auto-extract cannot be disabled, restrict authentication to trusted internal systems only and implement network-level access controls. For production multi-tenant systems, consider migrating to an alternative storage backend pending a security update.

Patch guidance

Contact the RustFS vendor or check their official advisory for available patches and the minimum version that resolves CVE-2026-49991. Verify the patch through the vendor's official release notes and cryptographic signatures before deploying. Test patches in a non-production environment to confirm they do not introduce regressions in your Snowball workflow. Plan a maintenance window to upgrade; the attack surface is high enough to warrant expedited patching.

Detection guidance

Monitor tar extraction operations for suspicious path patterns, particularly those containing ../ sequences in archive entry names. Log all Snowball auto-extract invocations with full archive contents and destination paths. Alert on any PutObject operations that write to buckets other than the authenticated user's own bucket. Audit IAM permission logs for wildcard policy evaluations that may have been bypassed via path traversal. Examine bucket access logs for unexpected object creation by low-privilege users in high-value or isolated buckets.

Why prioritize this

This vulnerability merits immediate attention due to its CVSS 8.6 HIGH severity, complete breakdown of multi-tenant isolation, and exploitation requiring only baseline authentication. The attack is trivial to execute with no special tools, and the blast radius includes every user's data on the system. For any RustFS deployment with multiple tenants or trust boundaries, this is a critical infrastructure risk.

Risk score, explained

The CVSS 3.1 score of 8.6 reflects the high attack complexity (network-based, low complexity), lack of authentication barriers beyond baseline credentials, and severe impact on integrity across tenant boundaries. While confidentiality is not explicitly listed in the vector, the ability to write files into other buckets enables data exfiltration and destruction. The scope is changed (S:C) because the vulnerability allows a user to impact resources beyond their intended scope. The exploit is unauthenticated from a trust perspective—credential reuse and default credentials amplify risk.

Frequently asked questions

Does this vulnerability require elevated permissions to exploit?

No. The vulnerability exploits a gap between permission checks and actual filesystem operations. A user with only PutObject permission on their own bucket can exploit it. No admin credentials or special roles are required.

Can we safely use RustFS if we disable multi-tenancy?

If RustFS is deployed in single-tenant mode with no other principals accessing the system, the multi-tenant isolation bypass has minimal impact. However, the underlying path traversal flaws (CWE-22) may still pose risks. Consult the vendor advisory to confirm whether single-tenant deployments are fully safe.

What should we do if we cannot patch immediately?

Disable the Snowball auto-extract feature entirely if possible. If it is critical to your workflow, implement compensating controls: restrict authentication to a whitelist of trusted networks, disable or heavily restrict the PutObject permission, and implement intensive monitoring of tar extraction and cross-bucket writes. These are stopgaps only; patch as soon as feasible.

How can we audit whether our system was already exploited?

Review tar extraction logs and bucket write audits for the past 90 days, looking for Snowball extraction operations with path traversal patterns (..), and any writes by low-privilege users to buckets they should not access. Examine CloudTrail (if applicable) for unexpected PutObject or GetObject calls across tenant boundaries. Consider engaging a forensics specialist if you cannot rule out exploitation.

This analysis is provided for informational purposes and reflects the vulnerability details available as of the publication date. The ground-truth data does not specify patched versions, a KEV listing, or active exploitation in the wild. Consult the official RustFS vendor advisory and security notices for the most current patch status, affected versions, and recommended timelines. Organizations should validate all remediation steps in a test environment before production deployment. SEC.co makes no guarantee of the completeness or accuracy of third-party vendor information. Source: NVD (public-domain), retrieved 2026-08-05. Analysis generated by SEC.co (claude-haiku-4-5).