{"id":"CVE-2026-54757","summary":"Trestle has Server-Side Template Injection (SSTI) via Recursive Template Re-evaluation of Untrusted Data","details":"Compliance-trestle (Trestle) is a Python SDK and command-line tool for managing OSCAL compliance documents. In versions before 3.12.4 and versions 4.0.0 through 4.0.3, Trestle is vulnerable to server-side template injection that can lead to remote code execution. This occurs because the MDCleanInclude and MDSectionInclude Jinja2 tags re-parse untrusted Markdown content as template source code using a non-sandboxed jinja2.Environment. An attacker who controls content that Trestle renders, such as a crafted workspace Markdown file, a third-party SSP document, or a YAML lookup-table value, can inject a Jinja2 expression that traverses Python object internals to execute arbitrary operating system commands in the context of the Trestle process. This issue is fixed in versions 3.12.4 and 4.1.0.","aliases":["GHSA-jw39-3688-r4rx"],"modified":"2026-08-28T11:31:02.892185834Z","published":"2026-08-25T23:02:12.422Z","database_specific":{"cwe_ids":["CWE-94"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54757.json","cna_assigner":"GitHub_M"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54757.json"},{"type":"ADVISORY","url":"https://github.com/oscal-compass/compliance-trestle/security/advisories/GHSA-jw39-3688-r4rx"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54757"},{"type":"FIX","url":"https://github.com/oscal-compass/compliance-trestle/commit/0f82d19bd42f9cc0f1b3acd7fc3f6dafe3b6ae10"},{"type":"FIX","url":"https://github.com/oscal-compass/compliance-trestle/commit/5335ff873a2a68eb7de43df029bea09cadff22fd"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/oscal-compass/compliance-trestle","events":[{"introduced":"0"},{"fixed":"5855179606e0d0f7656f7455b930ef12d32071e6"},{"introduced":"d965ee5a9a1c2680c80bfa3e63cd75f4fc488881"},{"fixed":"654bfaa0768aa6e4d495911e713c5f4e061e187e"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"3.12.4"},{"introduced":"4.0.0"},{"fixed":"4.1.0"}],"source":"AFFECTED_FIELD"}}],"versions":["v3.12.3","v4.0.3","v3.12.2","v3.12.1","v4.0.2","v3.12.0","v4.0.1","v4.0.0","v3.11.0","v3.10.4","v3.10.3","v3.10.2","v3.10.1","v3.10.0","v3.9.3","v3.9.2","v3.9.1","v3.9.0","v3.8.1","v3.8.0","v3.7.0","v3.6.0","v3.5.0","v3.4.0","v3.3.0","v3.2.0","v3.1.0","v3.0.1","v2.6.1","v2.6.0","v2.5.1","v2.5.0","v2.4.0","v2.3.1","v2.3.0","v2.2.1","v2.2.0","v2.1.1","v2.1.0","v2.0.0","v1.2.0","v1.1.0","v1.0.2","v1.0.1","v1.0.0","v0.37.0","v0.36.0","v0.35.0","v0.34.0","v0.33.0","v0.32.1","v0.32.0","v0.31.0","v0.30.0","v0.29.0","v0.28.1","v0.28.0","v0.27.2","v0.27.1","v0.27.0","v0.26.0","v0.25.1","v0.25.0","v0.24.0","v0.23.0","v0.22.1","v0.22.0","v0.21.0","v0.20.0","v0.19.0","v0.18.1","v0.18.0","v0.17.0","v0.16.0","v0.15.1","v0.15.0","v0.14.4","v0.14.3","v0.14.2","v0.14.1","v0.14.0","v0.13.1","v0.13.0","v0.12.0","v0.11.0","v0.10.0","v0.9.0","v0.8.1","v0.8.0","v0.7.2","v0.7.1","v0.7.0","v0.6.2","v0.6.1","v0.6.0","v0.4.0","v0.3.0","v0.2.2","v0.2.1","v0.2.0","v0.1.1","v0.1.0","v0.0.3","v0.0.2"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54757.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"}]}