CVE-2026-32725SciTokens C++是一个用于创建和使用SciTokens的C/C++最小化库。在1.4.1版本之前,该库在处理基于路径的Token作用域时存在授权绕过漏洞。库在授权前会对Token中的范围路径进行标准化处理,但在处理过程中折叠了“..”路径组件而不是拒绝它们。这导致攻击者可以利用作用域声明中的父目录遍历攻击,将有效授权范围扩大到预期目录之外。该问题已在1.4.1版本中得到修复。
该漏洞的根本原因在于SciTokens C++库对令牌中路径范围的验证逻辑存在缺陷。当库解析包含路径的Scope声明时,会对路径进行规范化处理。正常的安全实践应该是拒绝包含“..”的路径以防止目录遍历,但该库在处理时错误地将“..”折叠为父目录引用,从而允许了路径穿越。利用方式如下:攻击者可以构造一个恶意的SciToken,在其Scope字段中包含类似“read:/safe/path/../../unsafe/path”的声明。当受影响的应用程序(如SciTokens C++库)处理此令牌时,它会将“..”解析为父目录,最终授权用户访问“/unsafe/path”,而原本预期的授权范围仅限于“/safe/path”。由于CVSS向量为PR:L,攻击者通常需要拥有一个低权限的令牌才能发起攻击。这种逻辑漏洞绕过了基于路径前缀的访问控制机制,导致机密性泄露(C:H)、完整性受损(I:H)和一定程度的可用性影响(A:L)。