
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-32727 is a path traversal vulnerability (CWE-22) in the SciTokens Python reference library that allows authenticated attackers to bypass scope-based directory access controls. The flaw exists in the Enforcer component of all versions prior to 1.9.7, where dot-dot (..) sequences in a token's scope or scp claim can be used to escape intended directory restrictions. It was published on March 31, 2026, with a patch released in version 1.9.7. The CVSS v3.1 base score is 6.5 (Medium) per NVD, while the GitHub Security Advisory assigns a score of 8.1 (High) reflecting both confidentiality and integrity impact (GitHub Advisory, Red Hat Bugzilla).
The root cause (CWE-22) lies in the _check_scope and _scope_path_matches methods in src/scitokens/scitokens.py, combined with the normalize_path function in src/scitokens/urltools.py. When a token is verified, the Enforcer extracts the authorized path from the scope claim and passes it through urltools.normalize_path, which uses posixpath.normpath to resolve relative segments — converting a scope like read:/home/user1/.. to read:/home. The subsequent startswith comparison then incorrectly grants access to any path under the normalized parent (e.g., /home/user2). Attackers can also use URL-encoded variants such as %2e%2e, .%2e, or %2e. to bypass simple string filters, since normalize_path unquotes the path before normalizing. A scope of read:/anything/.. resolves to read:/, effectively granting access to the entire resource space (GitHub Advisory, Fix Commit).
Any authenticated user holding a valid SciToken can bypass path-based access controls and gain read (and potentially write) access to directories and files outside those authorized by their token's scope claim. In the worst case, a scope like read:/anything/.. resolves to the root path /, granting access to all resources the enforcer guards — including sensitive files such as /etc/passwd. The GitHub Advisory rates both confidentiality and integrity as High, indicating that unauthorized data disclosure and data modification are both possible consequences (GitHub Advisory).
A proof-of-concept Python script is publicly available in the GitHub Security Advisory, demonstrating the bypass by instantiating a SciToken with a malicious scope and calling Enforcer.test() to confirm unauthorized access is granted (GitHub Advisory). There is no evidence of in-the-wild exploitation at this time, and no threat actor attribution has been reported. The EPSS score is approximately 0.053% (very low probability of exploitation in the near term). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog.
scope (or scp) claim to include a dot-dot traversal sequence, e.g., read:/home/user1/.. (to access /home) or read:/anything/.. (to access the root /). URL-encoded variants such as read:/foo/%2e%2e/bar can also be used to evade simple string filters.urltools.normalize_path on the scope path, resolving read:/home/user1/.. to read:/home.startswith check: When the application requests access to a path like /home/user2, the Enforcer's _scope_path_matches method evaluates "/home/user2".startswith("/home/") as True, granting unauthorized access..., %2e%2e, .%2e, or %2e. sequences (e.g., scope: read:/home/user1/.. or scope: read:/foo/%2e%2e/bar)./home/user1 but access granted to /home/user2 or /etc/passwd).scope or scp claims containing traversal sequences (.., %2e%2e, .%2e, %2e., %2E%2E) when decoded (GitHub Advisory).Upgrade the SciTokens library to version 1.9.7 or later, which introduces a _normalize_scope_path method that rejects any scope path containing .. segments (including URL-encoded variants) before normalization, and raises InvalidAuthorizationResource as a ValidationFailure so Enforcer.test() reliably returns False (v1.9.7 Release, Fix Commit). No configuration-based workaround is available for unpatched versions; upgrading is the only reliable remediation. After upgrading, administrators should audit token issuance policies to ensure user-controlled input cannot influence scope path values, and review access logs for historical traversal attempts.
Red Hat tracked the vulnerability via Bugzilla (Bug 2453286) and published a CVE advisory, indicating awareness among enterprise Linux distributors (Red Hat Bugzilla, Red Hat CVE). The vulnerability was noted on Bluesky by CVE tracking accounts shortly after disclosure. Community reaction has been limited given the specialized nature of the SciTokens library, which is primarily used in scientific computing and research data access environments.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."