CVE intelligence and bounded remediation

CVE-2026-21621 — Incorrect Authorization vulnerability in hexpm hexpm/hexpm ('Elixir.HexpmWeb.API.OAuthController' module) allows Privilege Escalation

High CVSS 7

Incorrect Authorization vulnerability in hexpm hexpm/hexpm ('Elixir.HexpmWeb.API.OAuthController' module) allows Privilege Escalation. An API key created with read-only permissions (domain: "api", resource: "read") can be escalated to full write access under specific conditions. When exchanging a read-only API key via the OAuth client_credentials grant, the resource qualifier is ignored. The resulting JWT receives the broad "api" scope instead of the expected "api:read" scope. This token is therefore treated as having full API access. If an attacker is able to obtain a victim's read-only API key and a valid 2FA (TOTP) code for the victim account, they can use the incorrectly scoped JWT to create a new full-access API key with unrestricted API permissions that does not expire by default and can perform write operations such as publishing, retiring, or modifying packages. This vulnerability is associated with program files lib/hexpm_web/controllers/api/oauth_controller.ex and program routines 'Elixir.HexpmWeb.API.OAuthController':validate_scopes_against_key/2. This issue affects hexpm: from 71829cb6f6559bcceb1ef4e43a2fb8cdd3af654b before 71c127afebb7ed7cc637eb231b98feb802d62999.

Severity
High
CVSS
7 (4.0)
Published
2026-03-05
CISA KEV
Not currently listed
Ecosystem
software/application
Weaknesses
CWE-863

Affected products

  • hex / hexpm

Matched remediation archetype

Authorization bypass, IDOR, and cross-tenant access

This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.

Check exposure

  • Map object and action authorization checks across API, UI, batch, import/export, and background-job paths.
  • Identify tenant, ownership, role, and policy boundaries for affected resources and administrative operations.
  • Use synthetic fixtures to compare intended access matrices without accessing another user's real data.

Remediate safely

  • Enforce server-side authorization at each resource access and state transition using the authenticated principal and trusted tenant context.
  • Scope data queries by tenant and ownership; treat client-supplied identifiers, roles, and policy claims as untrusted.
  • Add deny-by-default policy tests for horizontal and vertical access across every affected transport.

Authoritative sources

Complete CVE record and remediation plan

The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.