Skip to main content
← All vulnerabilities
CVE-2026-57170GHSA-MR95-65J8-9MXPPYSEC-2026-4029

Trestle SSTI in Jinja2 include tags allows arbitrary code execution (Incomplete fix of CVE-2026-46439)

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 3.12.4, 4.1.0
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

Compliance-trestle (Trestle) is a Python SDK and command-line tool for managing OSCAL compliance documents. In versions prior to 3.12.4 and 4.0.0 through 4.0.3, the custom Jinja2 include tags mdsection_include and md_clean_include re-parse the content of an included Markdown file as Jinja2 template code in a non-sandboxed environment, allowing server-side template injection that can lead to arbitrary code execution. The MDSectionInclude and MDCleanInclude tags in Trestle/core/jinja/tags.py pass included file content to Parser(self.environment, ...).parse(), splicing it into the host template's compilation, and the environment is a plain jinja2.Environment rather than a SandboxedEnvironment, so any expressions in the file are evaluated with full access to the usual SSTI gadget chain. Because Trestle's Markdown writers emit OSCAL prose and component-description fields verbatim, applying delimiter neutralization only to parameter tables, attacker-controlled OSCAL data such as a control statement, part prose, or component description containing Jinja2 syntax flows into an included Markdown file and is executed when the include tag re-parses it. This issue is fixed in version 4.1.0.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • oscal-compass compliance-trestle

    fixed in 3.12.4; From 4.0.0 · fixed in 4.1.0

  • compliance-trestlePyPI

    fixed in 3.12.4

  • compliance-trestlePyPI

    From 4.0.0 · fixed in 4.1.0

  • compliance-trestlePyPI

    fixed in 3.12.4; From 4.0.0 · fixed in 4.1.0

References 3

GitHub · oscal-compass/compliance-trestle