GHSA-mx42-j6wv-px98 · Severity: medium · Ecosystem: rust — RustFS has an authorization bypass in multipart UploadPartCopy enables cross-bucket object exfiltration
RustFS is a distributed object storage system built in Rust. Prior to alpha.90, RustFS contains a missing authorization check in the multipart copy path (UploadPartCopy). A low-privileged user who cannot read objects from a victim bucket can still exfiltrate victim objects by copying them into an attacker-controlled multipart upload and completing the upload. This breaks tenant isolation in multi-user / multi-tenant deployments. This vulnerability is fixed in alpha.90.
Conclusion & alert: CVE-2026-39360 is rated Exploit Available (50/100): CVSS Medium severity, with low exploitation likelihood (EPSS 0.04%). Core evidence: 1 public exploit reference(s) are indexed (Exploit-DB). Mandatory action: Public exploits are available—assess exposure, apply mitigations, and prioritize patching.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
| EDB-ID | Source | Kind | Published | Link |
|---|---|---|---|---|
| — | nvd_ref | exploit_tag | Exploit-DB ↗ |
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2026-04-08 | — | 0.04% | — |
Full EPSS history (1 record total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 5.3 | 4.0 | MEDIUM |
|
— | — | [email protected] |
| 4.3 | 3.1 | MEDIUM |
|
2.8 | 1.4 | [email protected] |
GHSA-mx42-j6wv-px98 · Severity: medium · Ecosystem: rust — RustFS has an authorization bypass in multipart UploadPartCopy enables cross-bucket object exfiltration
| Vendor | Product | Version | Raw CPE |
|---|---|---|---|
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha1:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha10:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha11:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha12:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha13:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha14:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha15:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha16:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha17:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha18:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha19:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha2:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha20:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha21:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha22:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha23:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha24:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha25:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha26:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha27:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha28:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha29:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha3:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha30:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha31:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha32:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha33:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha34:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha35:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha36:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha37:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha38:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha39:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha4:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha40:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha41:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha42:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha43:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha44:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha45:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha46:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha47:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha48:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha49:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha5:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha50:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha51:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha52:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha53:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha54:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha55:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha56:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha57:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha58:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha59:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha6:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha60:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha61:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha62:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha63:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha64:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha65:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha66:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha67:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha68:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha69:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha7:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha70:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha71:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha72:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha73:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha74:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha75:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha76:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha77:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha78:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha79:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha8:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha80:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha81:*:*:*:rust:*:* |
| URL | Tags |
|---|---|
| https://github.com/rustfs/rustfs/security/advisories/GHSA-mx42-j6wv-px98 | Exploit Vendor Advisory |