Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain user credentials via phishing
-
DeliveryAuthenticate to Pocket ID OIDC flow
-
ExploitCapture refresh token from OAuth response
-
ExecutionAdmin revokes access/disables account
-
PersistExchange refresh token for new access tokens
-
ImpactMaintain persistent unauthorized access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization verification
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Attacker must first obtain a valid refresh token through legitimate or compromised authentication to Pocket ID, requiring low-privilege user credentials and user interaction (CVSS PR:L/UI:P). Once obtained, the refresh token remains exploitable across three specific administrative actions that should but fail to invalidate it: (1) explicit authorization revocation of the client application, (2) account disablement of the user, and (3) removal of the user from authorized groups. Exploitation occurs during the OIDC refresh token exchange flow when the createTokenFromRefreshToken function is invoked. No additional network restrictions, firewall bypass, or configuration changes are required - default Pocket ID deployments with OIDC enabled are vulnerable. The user interaction requirement limits fully automated exploitation but does not prevent persistent access once the initial token is acquired. Attack surface limited to Pocket ID instances version 2.5.x and earlier serving as OIDC providers. |
| Impact | Real-world risk is HIGH for organizations using Pocket ID for access control. CVSS 8.5 (network vector, low complexity, low privileges required but user interaction needed) accurately reflects exploitability - an attacker must first obtain a valid refresh token, likely through social engineering or initial compromised access. However, the CVSS vector indicates user interaction (UI:P), which may limit automated exploitation but does not prevent determined attackers. Publicly available exploit code (GitHub advisory GHSA-w6p7-2fxx-4f44) lowers the technical barrier significantly. The vulnerability's persistence across three critical security boundaries (revocation, account disablement, group removal) means standard incident response procedures (revoke access, disable account) DO NOT mitigate ongoing compromise. EPSS and KEV data not provided, but GitHub-reported POC suggests proof-of-concept exploitation is straightforward. SSVC assessment: exploitation public, automatable after initial token acquisition, high technical impact (confidentiality and integrity compromise per CVSS VC:H/VI:H). Organizations relying on Pocket ID for authorization decisions face material risk of privilege persistence attacks. |
| Exploit ScenarioDerived | An attacker socially engineers a user to authenticate via Pocket ID and captures the initial refresh token through compromised client application or network interception. When the security team detects the compromise and revokes the user's access, disables their account, or removes them from authorized groups, the attacker continues using the captured refresh token to obtain fresh access tokens indefinitely. The OIDC service validates only the refresh token's cryptographic signature without checking the user's current authorization state, granting new access tokens that bypass all administrative revocation actions. Publicly available exploit code (GHSA-w6p7-2fxx-4f44) demonstrates the token exchange process. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 12, 2026
Pocket ID OIDC provider fails to validate user authorization state during refresh token exchange, allowing revoked, disabled, or unauthorized users to obtain fresh access tokens indefinitely. Affects all versions prior to 2.6.0. Publicly available exploit code exists via GitHub security advisory GHSA-w6p7-2fxx-4f44. Attack requires low privileges and user interaction (CVSS 8.5) but enables persistent unauthorized access even after administrative revocation actions. Fixed in version 2.6.0.
RemediationAI
Upgrade Pocket ID to version 2.6.0 immediately, which includes authorization state validation in the refresh token exchange flow. The patched version re-checks user account status, client authorization, and group membership before issuing new access tokens. Upgrade path documented in GitHub security advisory GHSA-w6p7-2fxx-4f44 (https://github.com/pocket-id/pocket-id/security/advisories/GHSA-w6p7-2fxx-4f44). For environments unable to upgrade immediately, implement compensating controls: (1) Reduce refresh token lifetime to minimum operationally acceptable duration via OIDC configuration - trades security for user re-authentication frequency and potential service disruption during token expiry; (2) Monitor and revoke ALL refresh tokens when revoking user access or disabling accounts - requires manual operational process and does not prevent exploitation window between revocation and token expiry; (3) Implement application-layer authorization checks that verify user status independently of Pocket ID tokens - adds latency and duplicates authorization logic but provides defense in depth. Note that refresh token revocation alone is insufficient per the vulnerability description, requiring forced token expiration or user re-authentication.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Pocket ID implements OpenID Connect (OIDC) authentication using passkeys. The vulnerability resides in the createTokenFromRefreshToken function within oidc_service.go, which performs cryptographic validation of the refresh token's signature but omits authorization state checks. OAuth 2.0 and OIDC refresh token flows should verify current user status, group membership, and client authorization before issuing new access tokens. This is a CWE-285 (Improper Authorization) implementation flaw where cryptographic validity is conflated with authorization validity. The CPE cpe:2.3:a:pocket-id:pocket-id indicates this affects the core Pocket ID authentication service, not a specific client integration.
Know when Pocket Id gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
3DescriptionGitHub Advisory
Pocket ID is an OIDC provider that allows users to authenticate with their passkeys to your services. Prior to 2.6.0, The createTokenFromRefreshToken function (oidc_service.go) validates the refresh token's cryptographic integrity but does not re-validate the user's current authorization state before issuing new tokens. This allows (1) the client to refresh the token indefinitely after authorization revocation, (2) the refresh token to continue to work after the account is disabled, and (3) the token to work after the client is removed from the group. This vulnerability is fixed in 2.6.0.
Executive ViewAI
Pocket ID OIDC provider versions before 2.6.0 contain a critical authorization bypass in refresh token handling that allows revoked or disabled users to maintain indefinite access to protected resources. This vulnerability enables persistent unauthorized access even after administrators revoke user permissions, creating compliance and data protection risks across all integrated applications relying on Pocket ID for authentication.
Vendor-released patch: version 2.6.0. Until upgrade is deployed: (1) implement centralized token revocation checks on all resource servers independent of token validity; (2) enforce refresh token expiration at 24 hours or less; (3) require periodic re-authentication for sensitive operations; (4) monitor refresh token endpoint logs for patterns of revoked user access; (5) disable refresh token reuse and mandate new token requests on each refresh.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Pocket ID versions prior to 2.4.0 fail to properly validate authorization codes at the OIDC token endpoint, enabling att
Pocket ID versions 2.0.0 through 2.3.x suffer from improper callback URL validation that allows attackers to bypass redi
Same weakness CWE-285 – Improper Authorization
View allSame technique Authentication Bypass
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
EUVD-2026-29482
GHSA-w6p7-2fxx-4f44
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB