{"id":"CVE-2026-45774","title":"compliance-trestle is a tooling platform for managing compliance as code","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 wi…","severity":"medium","cwe":["CWE-22"],"vendor":"compliance-trestle","product":"compliance-trestle","affected":["compliance-trestle >= 4.0.0, < 4.0.3","compliance-trestle < 3.12.2"],"patched":["compliance-trestle 4.0.3","compliance-trestle 3.12.2"],"published":"2026-08-13","updated":"2026-09-18","sourceUpdated":"2026-09-18T20:09:01.757","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-45774","references":[{"url":"https://github.com/oscal-compass/compliance-trestle/commit/5c65c5926fe7ca908b9c1d281f904e7d97ba8310","label":"security-advisories@github.com"},{"url":"https://github.com/oscal-compass/compliance-trestle/commit/d00a0c2f702c24f7016009fbd626036f5c46f47b","label":"security-advisories@github.com"},{"url":"https://github.com/oscal-compass/compliance-trestle/security/advisories/GHSA-mj4x-vf5c-5xg8","label":"security-advisories@github.com"},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/compliance-trestle/PYSEC-2026-2426.yaml","label":"security-advisories@github.com"},{"url":"https://github.com/oscal-compass/compliance-trestle/security/advisories/GHSA-mj4x-vf5c-5xg8","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"},{"url":"https://github.com/oscal-compass/compliance-trestle"}],"tags":["nvd","osv","pip"],"epss":0.00451,"epssPercentile":0.38559,"aliases":["GHSA-mj4x-vf5c-5xg8","PYSEC-2026-2426"],"ecosystem":"pip","ingestedAt":"2026-07-13T18:58:00.665Z","slug":"CVE-2026-45774","body":"## Overview\n\ncompliance-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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-45774)\n\nAffected packages:\n\n- `compliance-trestle >= 4.0.0, < 4.0.3`\n- `compliance-trestle < 3.12.2`\n\nPatched in:\n\n- `compliance-trestle 4.0.3`\n- `compliance-trestle 3.12.2`\n\nSource: https://osv.dev/vulnerability/GHSA-mj4x-vf5c-5xg8","depth":"sunlit","depthScore":28,"depthScoreParts":{"impact":27.5,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}