# CVE-2026-40937: CVE-2026-40937

Status: published. Published: 2026-04-22. Updated: 2026-11-11.

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.

## Remediation

No remediation reported in collected sources

## Affected products and versions

- rustfs / rustfs: 1.0.0 (affected, custom). Source: NVD
-  / rustfs (rustfs): ≥ 0; ≤ 0.0.2 (affected, semver); OSV events: introduced 0; last affected 0.0.2. Source: OSV GHSA-pfcq-4gjr-6gjm

## NVD configuration conditions

Affected CPE matches depend on the following AND/OR and negation conditions:

```json
[
  {
    "negate": false,
    "nodes": [
      {
        "cpeMatch": [
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha1:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha10:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha11:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha12:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha13:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha14:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha15:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha16:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha17:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha18:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha19:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha2:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha20:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha21:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha22:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha23:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha24:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha25:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha26:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha27:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha28:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha29:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha3:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha30:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha31:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha32:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha33:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha34:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha35:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha36:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha37:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha38:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha39:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha4:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha40:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha41:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha42:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha43:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha44:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha45:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha46:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha47:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha48:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha49:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha5:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha50:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha51:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha52:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha53:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha54:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha55:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha56:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha57:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha58:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha59:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha6:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha60:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha61:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha62:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha63:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha64:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha65:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha66:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha67:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha68:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha69:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha7:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha70:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha71:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha72:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha73:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha74:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha75:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha76:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha77:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha78:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha79:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha8:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha80:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha81:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha82:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha83:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha84:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha85:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha86:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha87:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha88:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha89:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha9:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha90:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha91:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha92:*:*:*:rust:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:a:rustfs:rustfs:1.0.0:alpha93:*:*:*:rust:*:*",
            "vulnerable": true
          }
        ],
        "negate": false,
        "operator": "OR"
      }
    ],
    "operator": "OR"
  }
]
```

## Severity and prioritization

- CVSS 3.1: 8.3 (high); CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L; source: NVD: security-advisories@github.com

- CISA KEV: No listing in collected sources

- EPSS: Not available

- SSVC: exploitation none; automatable no; technical impact total; source NVD SSVC: 134c704f-9b21-4f2e-91b3-4a467353bcc0

- Weaknesses: CWE-862

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://github.com/rustfs/rustfs/releases/tag/1.0.0-alpha.94 (security-advisories@github.com; Product, Release Notes)

- https://github.com/rustfs/rustfs/security/advisories/GHSA-pfcq-4gjr-6gjm (security-advisories@github.com; Mitigation, Vendor Advisory)

- https://github.com/advisories/GHSA-pfcq-4gjr-6gjm (OSV / GitHub Security Advisories; advisory)

- https://osv.dev/vulnerability/GHSA-pfcq-4gjr-6gjm (OSV / GitHub Security Advisories; osv)

## Provenance

- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-40937; retrieved 2026-11-12; source updated 2026-11-11

- OSV / GitHub Security Advisories: https://osv.dev/vulnerability/GHSA-pfcq-4gjr-6gjm; retrieved 2026-11-12; source updated 2026-05-05

Revision: a3362b91736aeaad8639cea919cd5fa9619b5406a9ed19193c120178fb83b7a1

Canonical: https://y2.dev/cve/CVE-2026-40937

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.