Skip to content
OpenAdvisories
Medium · 6.9 CVE-2026-45774 EUVD-2026-58357GHSA-mj4x-vf5c-5xg8PYSEC-2026-2426

compliance-trestle Profile Import has an Arbitrary File Read via trestle:// URI and Relative Path Traversal

Published Aug 13, 2026 · Updated Aug 14, 2026 · Assigned by GitHub_M

Description

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.

Affected products

VendorProductAffectedFixed
oscal-compass compliance-trestle < 3.12.2, >= 4.0.0, < 4.0.3 —

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI compliance-trestle >= 4.0.0, < 4.0.3 4.0.3 GHSA-mj4x-vf5c-5xg8
PyPI compliance-trestle < 3.12.2 3.12.2 GHSA-mj4x-vf5c-5xg8
PyPI compliance-trestle < 3.12.2 · >= 4.0.0, < 4.0.3 3.12.2, 4.0.3 PYSEC-2026-2426

References