Skip to content
OpenAdvisories
High · 7.8 CVE-2026-54757 EUVD-2026-66209GHSA-jw39-3688-r4rxPYSEC-2026-3817

Trestle has Server-Side Template Injection (SSTI) via Recursive Template Re-evaluation of Untrusted Data

Published Aug 25, 2026 · Updated Aug 26, 2026 · Assigned by GitHub_M

Description

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.

Affected products

VendorProductAffectedFixed
oscal-compass compliance-trestle < 3.12.4, >= 4.0.0, < 4.1.0 —

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI compliance-trestle < 3.12.4 3.12.4 GHSA-jw39-3688-r4rx
PyPI compliance-trestle >= 4.0.0, < 4.1.0 4.1.0 GHSA-jw39-3688-r4rx
PyPI compliance-trestle < 3.12.4 · >= 4.0.0, < 4.1.0 3.12.4, 4.1.0 PYSEC-2026-3817

References