Vulnerability

Pocket ID Verified-Email Spoofing Flaw (CVE-2026-115770)

A verification flaw in Pocket ID, an OIDC passkey provider, from 2.2.0 up to 2.12.0.

CVE ID
CVE-2026-115770
CVSS
9.6 Critical (CVSS v3.1, GitHub as CNA; NVD lists it as a secondary source); no CVSS 4.0 score in the record or NVD
Affected product
Pocket ID 2.2.0 up to, but not including, 2.12.0, per the CVE record
Exploited
Unknown
Published
4 November 2026 (CVE record and NVD); GitHub advisory and fix release 29 July 2026

In short

CVE-2026-115770 is a verification flaw in Pocket ID, an OIDC passkey provider, from 2.2.0 up to 2.12.0. An ordinary user can get an arbitrary unused email address published with email_verified set to true. GitHub, the CNA, scores it CVSS 3.1 9.6.

Profile MapVulnerability
  1. CVECVE-2026-115770
  2. Productpocket-id Pocket ID 2.2.0 up to, but not including, 2.12.0, per the CVE record
  3. Fix Steps5actions listedUpdate Pocket ID · Review Self-Edit Settings

What it allows

CVE-2026-115770 is a flaw in how Pocket ID, an OIDC provider that signs users in with passkeys, verifies email addresses. A verification token is tied only to the user's identifier, not to the address it was sent to. Changing the account email does not cancel a token that is already outstanding.

An ordinary user can request a token for an address they control, then change the account to an address they do not control. Redeeming the old token makes Pocket ID mark the new address as verified. Pocket ID then publishes that address with email_verified set to true in its OIDC claims.

Why a False Verified Email Matters

The damage lands in the applications that trust Pocket ID. The advisory says a relying application that uses a verified email for automatic account matching or provisioning can link the attacker's identity to another user's account. That is an account takeover in the downstream app, not in Pocket ID itself.

Applications that rely only on the stable OIDC sub claim are not affected by that downstream consequence. The advisory also says no administrator privilege, victim interaction or access to the victim's mailbox is needed. The target address must not already belong to another Pocket ID user.

Preconditions in the Default Setup

The CVE record says the default affected configuration uses emailsVerified=false and allowOwnAccountEdit=true. The attacker needs an ordinary account on the instance. This is why the CNA scores it with low privileges required and a changed scope, because the impact reaches other applications.

Root Cause and the Fix

According to the advisory, the token record stores only a token, an expiry and a user ID. The update function resets the verified flag when the address changes but leaves existing tokens valid. The verify function checks only the token, user ID and expiry, and the claims service publishes the current address with the current flag.

Pocket ID fixed the issue in version 2.12.0. The advisory suggests binding each token to the normalized target address and invalidating outstanding tokens when the email changes. The CVE record links the fix pull request and commit, so reviewers can read the change.

What CVSS and CISA KEV Say

GitHub, the CNA, scores the flaw CVSS 3.1 9.6 Critical with vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N. NVD lists the score as secondary and received the entry on 4 November 2026. There is no CVSS 4.0 score in the record or NVD.

As of CISA catalog version 2026.11.04, the CVE is not in the Known Exploited Vulnerabilities catalog. Our KEV glossary entry explains the catalog.

Who is affected

The CVE record lists Pocket ID from 2.2.0 up to but not including 2.12.0, and names version 2.12.0 as the fix. GitHub's advisory lists the Go module github.com/pocket-id/pocket-id/backend with the same range. Version 2.12.0 was released on 29 July 2026, according to the GitHub release page.

GitHub's release list also shows later versions, such as 2.19.2 dated 2 November 2026. We recommend moving to the newest release rather than stopping at 2.12.0. The 2.12.0 release notes say the version includes security fixes and that updating is highly recommended.

The record does not name versions before 2.2.0 as affected. Our vulnerability management guide covers how to track self-hosted services like this one.

Timeline

  1. 27 Jul 2026

    The fix pull request #1625 is merged, per GitHub.

  2. 29 Jul 2026

    Pocket ID publishes advisory GHSA-rm8c-2cv8-jwf6 and releases version 2.12.0.

  3. 23 Oct 2026

    GitHub reserves CVE-2026-115770 (CVE record).

  4. 4 Nov 2026

    The CVE record is published and NVD receives the entry.

What to do

  1. Update Pocket ID

    Move to 2.12.0 at minimum. We recommend the newest release listed on GitHub, since later versions are available.

  2. Check How Your Apps Match Users

    List every application that signs in through Pocket ID and note whether it links accounts by verified email. Apps that use only the sub claim are not affected downstream.

  3. Review Email Changes and Verifications

    We recommend checking Pocket ID user records for addresses that changed close to a verification, and for users whose address matches an account you know belongs to someone else.

  4. Audit Linked Accounts in Relying Apps

    In each app that matches by email, review accounts linked to Pocket ID identities since 2.2.0 and unlink any you cannot tie to the right person.

  5. Review Self-Edit Settings

    The advisory names allowOwnAccountEdit=true as a precondition. We recommend checking whether users really need to edit their own email until you have updated; the advisory does not offer this as a workaround.

Questions

Which Pocket ID versions does CVE-2026-115770 affect?

The record lists versions from 2.2.0 up to but not including 2.12.0. Version 2.12.0 contains the fix.

Do I have to be an administrator to abuse it?

No. The advisory says an ordinary account is enough and that no administrator privilege, victim interaction or mailbox access is needed.

Are apps that use the sub claim affected?

The advisory says applications relying exclusively on the stable OIDC sub claim are not affected by the downstream account linking.

Is CVE-2026-115770 in the CISA KEV catalog?

Not in catalog version 2026.11.04. KEV status can change, so check the catalog again before you rely on this.

Why does the CVSS score show a changed scope?

The weakness is in Pocket ID, but the impact lands in other applications that trust its claims. The vector therefore sets scope to Changed.

In our research

  1. Account takeover Glossary term
  2. Passkeys Glossary term

Sources

  1. CVE-2026-115770 Record CVE Program / GitHub CNA
  2. CVE-2026-115770 NVD
  3. Email verification token remains valid after address change, enabling arbitrary verified-email spoofing (GHSA-rm8c-2cv8-jwf6) Pocket ID on GitHub
  4. Pocket ID v2.12.0 release Pocket ID on GitHub
  5. Known Exploited Vulnerabilities Catalog CISA