CVE-2026-21621

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.
CVSS

No CVSS.

Configurations

No configuration.

History

09 Mar 2026, 13:36

Type Values Removed Values Added
Summary
  • (es) Vulnerabilidad de autorización incorrecta en hexpm hexpm/hexpm (módulo 'Elixir.HexpmWeb.API.OAuthController') permite la escalada de privilegios. Una clave API creada con permisos de solo lectura (dominio: "api", recurso: "read") puede ser escalada a acceso completo de escritura bajo condiciones específicas. Al intercambiar una clave API de solo lectura a través de la concesión OAuth client_credentials, el calificador de recurso es ignorado. El JWT resultante recibe el ámbito amplio "api" en lugar del ámbito esperado "api:read". Este token es, por lo tanto, tratado como si tuviera acceso completo a la API. Si un atacante es capaz de obtener una clave API de solo lectura de una víctima y un código 2FA (TOTP) válido para la cuenta de la víctima, pueden usar el JWT con ámbito incorrecto para crear una nueva clave API de acceso completo con permisos de API ilimitados que no expira por defecto y puede realizar operaciones de escritura como publicar, retirar o modificar paquetes. Esta vulnerabilidad está asociada con los archivos de programa lib/hexpm_web/controllers/api/oauth_controller.ex y las rutinas de programa 'Elixir.HexpmWeb.API.OAuthController':validate_scopes_against_key/2. Este problema afecta a hexpm: desde 71829cb6f6559bcceb1ef4e43a2fb8cdd3af654b antes de 71c127afebb7ed7cc637eb231b98feb802d62999.

05 Mar 2026, 20:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-03-05 20:16

Updated : 2026-03-09 13:36


NVD link : CVE-2026-21621

Mitre link : CVE-2026-21621

CVE.ORG link : CVE-2026-21621


JSON object : View

Products Affected

No product.

CWE
CWE-863

Incorrect Authorization