Descripción
Pocket ID es un proveedor OIDC que permite a los usuarios autenticarse en servicios con sus passkeys. Desde la versión 2.2.0 hasta la 2.12.0, SendEmailVerification utiliza el modelo de token de backend/internal/model/email_verification_token.go para vincular un token de verificación de correo electrónico únicamente al identificador del usuario, mientras que UpdateUser puede cambiar el correo electrónico de la cuenta sin invalidar el token pendiente y VerifyEmail marca como verificada la dirección actual. Un usuario común puede solicitar un token para una dirección que controla, cambiar la cuenta a una dirección arbitraria no utilizada y canjear el token antiguo, de modo que Pocket ID publique la nueva dirección con email_verified establecido en true. La configuración afectada predeterminada utiliza emailsVerified=false y allowOwnAccountEdit=true; la dirección objetivo no debe pertenecer ya a otro usuario de Pocket ID. Una aplicación dependiente que confíe en un correo electrónico verificado para la vinculación o el aprovisionamiento automático de cuentas puede vincular la identidad del atacante a la cuenta de otro usuario, mientras que las aplicaciones que dependen exclusivamente del claim estable sub de OIDC no se ven afectadas por esa consecuencia. Este problema está corregido en la versión 2.12.0.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- pocket-id Afectadas: >= 2.2.0, < 2.12.0
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en github.comgithub.com/pocket-id/pocket-id/security/advisories/GHSA-rm8c-2cv8-jwf6
- Referencia en github.comgithub.com/pocket-id/pocket-id/pull/1625
- Referencia en github.comgithub.com/pocket-id/pocket-id/commit/43aaccd5bfacb76283b11ce039fb3f0…
- Referencia en github.comgithub.com/pocket-id/pocket-id/releases/tag/v2.12.0
Ver el texto original en inglés (CVE.org)
Pocket ID: Email verification token remains valid after address change, enabling arbitrary verified-email spoofing
Pocket ID is an OIDC provider that allows users to authenticate with their passkeys to services. From 2.2.0 until 2.12.0, SendEmailVerification uses the token model in backend/internal/model/email_verification_token.go to bind an email-verification token only to the user's identifier, while UpdateUser can change the account email without invalidating the outstanding token and VerifyEmail marks the current address as verified. An ordinary user can request a token for an address they control, change the account to an arbitrary unused address, and redeem the old token so Pocket ID publishes the new address with email_verified set to true. The default affected configuration uses emailsVerified=false and allowOwnAccountEdit=true; the target address must not already belong to another Pocket ID user. A relying application that trusts a verified email for automatic account matching or provisioning can link the attacker's identity to another user's account, while applications that rely exclusively on the stable OIDC sub claim are not affected by that downstream consequence. This issue is fixed in version 2.12.0.