compliance-trestle Profile Import has an Arbitrary File Read via trestle:// URI and Relative Path Traversal
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-22 and the CVSS impact.
Summary
compliance-trestle is a tooling platform for managing compliance as code. Prior to versions 3.12.2 and 4.0.3, the compliance-trestle library's profile import mechanism resolves `trestle://` URIs and relative file paths by joining them with `trestle_root` and calling `.resolve()`, but performs no boundary check to ensure the resolved path stays within the trestle workspace. An attacker can craft a malicious OSCAL profile YAML with `imports[].href` containing path traversal sequences to read arbitrary files from the server filesystem. Versions 3.12.3 and 4.0.3 patch the issue.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| oscal-compass | compliance-trestle | before 3.12.2; 4.0.0 to before 4.0.3 | 3.12.2, 4.0.3 | Patch available | CNA |
| — | compliance-trestle (PyPI) | 4.0.0 to before 4.0.3 | 4.0.3 | Patch available | GHSA-mj4x-vf5c-5xg8 |
| — | compliance-trestle (PyPI) | before 3.12.2 | 3.12.2 | Patch available | GHSA-mj4x-vf5c-5xg8 |
- compliance-trestle Vendoroscal-compass Affected before 3.12.2; 4.0.0 to before 4.0.3 Fixed in 3.12.2, 4.0.3 Patch available CNA
- compliance-trestle (PyPI) Vendor— Affected 4.0.0 to before 4.0.3 Fixed in 4.0.3 Patch available GHSA-mj4x-vf5c-5xg8
- compliance-trestle (PyPI) Vendor— Affected before 3.12.2 Fixed in 3.12.2 Patch available GHSA-mj4x-vf5c-5xg8
Remediation
- Fix · CNA compliance-trestle (oscal-compass) Fixed in 3.12.2, 4.0.3
- Fix · GHSA-mj4x-vf5c-5xg8 compliance-trestle (PyPI) Fixed in 4.0.3 Advisory →
- Fix · GHSA-mj4x-vf5c-5xg8 compliance-trestle (PyPI) Fixed in 3.12.2 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
Not affected: 2 products
- File Integrity Operator
- Red Hat Hardened Images
Timeline
- 2026-10-02 Threatist record created from CVE-2026-45774
- 2026-10-03 Alias added: GHSA-mj4x-vf5c-5xg8
- 2026-10-10 Affected versions changed · Red Hat
References
Other 5
- https://github.com/oscal-compass/compliance-trestle/security/advisories/GHSA-mj4x-vf5c-5xg8
- https://github.com/oscal-compass/compliance-trestle/commit/5c65c5926fe7ca908b9c1d281f904e7d97ba8310
- https://github.com/oscal-compass/compliance-trestle/commit/d00a0c2f702c24f7016009fbd626036f5c46f47b
- https://github.com/pypa/advisory-database/tree/main/vulns/compliance-trestle/PYSEC-2026-2426.yaml
- https://github.com/oscal-compass/compliance-trestle
More oscal-compass vulnerabilities
- TI-2026-37891 Trestle URLSecurityValidator SSRF allowlist bypass via IPv4-mapped IPv6 and 0.0.0.0 CVSS 4.0HIGH 8.6
- TI-2026-34065 compliance-trestle - jinja has an Arbitrary File Write via Path Traversal CVSS 3.1HIGH 8.4
- TI-2026-34145 compliance-trestle Vulnerable to Remote Code Execution via Recursive Server-Side Template Injection (SSTI) CVSS 3.1HIGH 7.8
- TI-2026-34095 compliance-trestle Vulnerable to SSRF in Remote Fetching Subsystem CVSS 3.1MEDIUM 6.7
- TI-2026-41137 Trestle SSTI in Jinja2 include tags allows arbitrary code execution (Incomplete fix of CVE-2026-46439) CVSS 3.1HIGH 7.8
- TI-2026-39563 Trestle has Server-Side Template Injection (SSTI) via Recursive Template Re-evaluation of Untrusted Data CVSS 3.1HIGH 7.8
Sources
- CVE-2026-45774 · CVE Program
- CVE-2026-45774 · NVD
- FIRST EPSS
- GHSA-mj4x-vf5c-5xg8 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-45774 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences