GHSA-fc6g-2gcp-2qrq · Severity: high · Ecosystem: rust — RustFS has SourceIp bypass via spoofed X-Forwarded-For/Real-IP headers
RustFS is a distributed object storage system built in Rust. Prior to version alpha.78, IP-based access control can be bypassed: get_condition_values trusts client-supplied X-Forwarded-For/X-Real-Ip without verifying a trusted proxy, so any reachable client can spoof aws:SourceIp and satisfy IP-allowlist policies. This issue has been patched in version alpha.78.
Conclusion & alert: CVE-2026-21862 is rated Low Risk (34.8/100): CVSS High severity, with low exploitation likelihood (EPSS 0.04%). Mandatory action: Monitor for updates and reassess as exploit intelligence or EPSS changes.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
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-02-24 | 0.05% | 0.04% | -0.02% |
| 2 | 2026-02-09 | 0.04% | 0.05% | +0.01% |
| 3 | 2026-02-04 | — | 0.04% | — |
Full EPSS history (3 records total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 7.7 | 4.0 | HIGH |
|
— | — | [email protected] |
| 7.5 | 3.1 | HIGH |
|
3.9 | 3.6 | [email protected] |
GHSA-fc6g-2gcp-2qrq · Severity: high · Ecosystem: rust — RustFS has SourceIp bypass via spoofed X-Forwarded-For/Real-IP headers
| 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:alpha8:*:*:*:rust:*:* |
| rustfs | rustfs | 1.0.0 | cpe:2.3:a:rustfs:rustfs:1.0.0:alpha9:*:*:*:rust:*:* |
| URL | Tags |
|---|---|
| https://github.com/rustfs/rustfs/security/advisories/GHSA-fc6g-2gcp-2qrq | Vendor Advisory |