漏洞关键信息 漏洞标题 Improper Session Invalidation (JWT Remains Valid) 严重性 CVSS v3 base score: 8.1/10 Severity: High 影响版本和修复版本 Affected versions: < 0.32.4 Patched versions: 0.32.4 漏洞描述 摘要 应用程序在用户更改密码后不使之前发布的JWT访问令牌失效。因此,旧令牌在其过期之前仍然有效并且可以用于访问受保护的API端点。这种行为允许在帐户密码更改后继续进行身份验证访问。 测试观察 JWT访问令牌在达到其exp值之前一直有效。 登出时令牌未被使无效。 密码更改后令牌未被使无效。 未实施任何可观察的撤销机制(例如,黑名单、jti跟踪、令牌版本控制)。 概念验证 1. 身份验证并获取JWT(1)。 2. 更改帐户密码。 3. 登出并重新登录(JWT2已发布)。 4. 在请求中使用JWT(1)。 5. 服务器返回有效的用户数据。尽管密码更改,JWT仍然可用。 影响 如果攻击者获得对有效JWT的访问权限(例如,通过跨站脚本攻击、共享设备、泄漏的日志、浏览器被破坏或网络暴露),则即使用户更改密码,他们仍可以继续访问帐户。 这导致: 持续的会话劫持 持续未经授权的访问 用户无法有效撤销受损会话 密码更改不会终止活动会话,违反常用安全期望和最佳实践。 缓解措施 在密码更改时使会话无效 实施服务器端会话终止 提供全局登出功能 限制会话生命周期 使用短暂生存期的访问令牌 实施令牌撤销机制 实施刷新令牌轮换 在凭据更改时使令牌无效 CWE ID CWE-613 报告者 G3XAR