CVE-2026-66884

Cross-Site Request Forgery vulnerability in Erlang Ecosystem Foundation oidcc_plug (Oidcc.Plug.AuthorizationCallback module) allows an attacker to make a victim's browser complete an authorization flow the victim never initiated. This vulnerability is associated with program file lib/oidcc/plug/authorization_callback.ex and program routine Oidcc.Plug.AuthorizationCallback.call/2. A callback request that carries no Oidcc.Plug.Authorize session is processed with every security check disabled rather than being rejected. call/2 substitutes permissive defaults for the absent session, and each downstream check treats its value as nothing to compare and returns :ok, so the nonce, state, PKCE, peer IP and user agent checks are all skipped. A separate clause of check_state/2 also accepts a state-less request when a verifier is present. An attacker obtains an authorization code for their own provider account, then induces the victim to visit the callback endpoint with that code and no state parameter. The application signs the victim in as the attacker, so the victim's subsequent actions occur in the attacker's account where the attacker can read them. Applications reusing one callback for both signing in and linking a provider account are further exposed to account takeover, the attacker's account becoming linked to the victim's. The permissive fallback serves no conforming flow. Third-party-initiated login reaches a relying party at a separate login initiation endpoint and causes it to send a fresh authentication request, and this library implements no such endpoint. Oidcc.Plug.Authorize always sends a state parameter, which an authorization server must echo, so no legitimate callback lacks one. This issue affects oidcc_plug: from 0.2.0-beta.1 before 0.5.0.
CVSS

No CVSS.

Configurations

No configuration.

History

23 Oct 2026, 23:10

Type Values Removed Values Added
Summary
  • (es) Vulnerabilidad de falsificación de petición en sitios cruzados en Erlang Ecosystem Foundation oidcc_plug (módulo Oidcc.Plug.AuthorizationCallback) permite a un atacante hacer que el navegador de una víctima complete un flujo de autorización que la víctima nunca inició. Esta vulnerabilidad está asociada con el archivo de programa lib/oidcc/plug/authorization_callback.ex y la rutina de programa Oidcc.Plug.AuthorizationCallback.call/2. Una petición de devolución de llamada que no lleva ninguna sesión de Oidcc.Plug.Authorize se procesa con todas las verificaciones de seguridad deshabilitadas en lugar de ser rechazada. call/2 sustituye valores predeterminados permisivos para la sesión ausente, y cada verificación posterior trata su valor como nada que comparar y devuelve :ok, por lo que las verificaciones de nonce, estado, PKCE, IP del par y agente de usuario son todas omitidas. Una cláusula separada de check_state/2 también acepta una petición sin estado cuando un verificador está presente. Un atacante obtiene un código de autorización para su propia cuenta de proveedor, luego induce a la víctima a visitar el punto final de devolución de llamada con ese código y sin parámetro de estado. La aplicación inicia la sesión de la víctima como el atacante, por lo que las acciones posteriores de la víctima ocurren en la cuenta del atacante donde el atacante puede leerlas. Las aplicaciones que reutilizan una devolución de llamada tanto para iniciar sesión como para vincular una cuenta de proveedor están aún más expuestas a la toma de control de cuenta, quedando la cuenta del atacante vinculada a la víctima. La alternativa permisiva no sirve a ningún flujo conforme. El inicio de sesión iniciado por terceros llega a una parte confiable en un punto final de inicio de sesión separado y hace que envíe una nueva petición de autenticación, y esta biblioteca no implementa tal punto final. Oidcc.Plug.Authorize siempre envía un parámetro de estado, que un servidor de autorización debe hacer eco, por lo que ninguna devolución de llamada legítima carece de uno. Este problema afecta a oidcc_plug: desde 0.2.0-beta.1 antes de 0.5.0.

Information

Published : 2026-08-04 12:16

Updated : 2026-10-23 23:10


NVD link : CVE-2026-66884

Mitre link : CVE-2026-66884

CVE.ORG link : CVE-2026-66884


JSON object : View

Products Affected

No product.

CWE
CWE-352

Cross-Site Request Forgery (CSRF)