RustFS missing admin authorization on notification target endpoints, which allows unauthenticated configuration of event webhooks
Summary
| CVE | CVE-2026-40937 |
|---|---|
| State | PUBLISHED |
| Assigner | GitHub_M |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-04-22 21:17:08 UTC |
| Updated | 2026-04-24 13:12:29 UTC |
| Description | RustFS is a distributed object storage system built in Rust. Prior to 1.0.0-alpha.94, all four notification target admin API endpoints in `rustfs/src/admin/handlers/event.rs` use a `check_permissions` helper that validates authentication only (access key + session token), without performing any admin-action authorization via `validate_admin_request`. Every other admin handler in the codebase correctly calls `validate_admin_request` with a specific `AdminAction`. This is the only admin handler file that skips authorization. A non-admin user can overwrite a shared admin-defined notification target by name, causing subsequent bucket events to be delivered to an attacker-controlled endpoint. This enables cross-user event interception and audit evasion. 1.0.0-alpha.94 contains a patch. |
Risk And Classification
Primary CVSS: v3.1 8.3 HIGH from [email protected]
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
EPSS: 0.000550000 probability, percentile 0.172420000 (date 2026-04-26)
Problem Types: CWE-862 | CWE-862 CWE-862: Missing Authorization
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 3.1 | [email protected] | Secondary | 8.3 | HIGH | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L |
| 3.1 | CNA | DECLARED | 8.3 | HIGH | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L |
CVSS v3.1 Breakdown
Attack Vector
NetworkAttack Complexity
LowPrivileges Required
LowUser Interaction
NoneScope
UnchangedConfidentiality
HighIntegrity
HighAvailability
LowCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
NVD Known Affected Configurations (CPE 2.3)
| Type | Vendor | Product | Version | Update | Edition | Language |
|---|---|---|---|---|---|---|
| Application | Rustfs | Rustfs | 1.0.0 | alpha1 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha10 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha11 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha12 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha13 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha14 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha15 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha16 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha17 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha18 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha19 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha2 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha20 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha21 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha22 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha23 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha24 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha25 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha26 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha27 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha28 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha29 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha3 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha30 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha31 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha32 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha33 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha34 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha35 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha36 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha37 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha38 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha39 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha4 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha40 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha41 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha42 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha43 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha44 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha45 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha46 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha47 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha48 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha49 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha5 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha50 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha51 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha52 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha53 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha54 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha55 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha56 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha57 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha58 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha59 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha6 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha60 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha61 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha62 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha63 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha64 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha65 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha66 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha67 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha68 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha69 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha7 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha70 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha71 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha72 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha73 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha74 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha75 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha76 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha77 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha78 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha79 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha8 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha80 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha81 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha82 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha83 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha84 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha85 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha86 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha87 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha88 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha89 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha9 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha90 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha91 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha92 | All | All |
| Application | Rustfs | Rustfs | 1.0.0 | alpha93 | All | All |
Vendor Declared Affected Products
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| github.com/rustfs/rustfs/releases/tag/1.0.0-alpha.94 | [email protected] | github.com | Product, Release Notes |
| github.com/rustfs/rustfs/security/advisories/GHSA-pfcq-4gjr-6gjm | [email protected] | github.com | Mitigation, Vendor Advisory |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.