Skip to main content
← All vulnerabilities
CVE-2026-45774PYSEC-2026-2426GHSA-MJ4X-VF5C-5XG8

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 3.12.2, 4.0.3
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • oscal-compass compliance-trestle

    fixed in 3.12.2; From 4.0.0 · fixed in 4.0.3

  • compliance-trestlePyPI

    fixed in 3.12.2; From 4.0.0 · fixed in 4.0.3

  • compliance-trestlePyPI

    From 4.0.0 · fixed in 4.0.3

  • compliance-trestlePyPI

    fixed in 3.12.2

References 4

GitHub · oscal-compass/compliance-trestle

GitHub · pypa/advisory-database