Bug 2534091 (CVE-2026-92218) - CVE-2026-92218 release-service-utils: Server-Side Template Injection via two-pass non-sandboxed Jinja render
Summary: CVE-2026-92218 release-service-utils: Server-Side Template Injection via two-...
Keywords:
Status: NEW
Alias: CVE-2026-92218
Deadline: 2026-09-21
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-09-15 18:35 UTC by OSIDB Bzimport
Modified: 2026-09-16 15:10 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-09-15 18:35:54 UTC
Discovered as a part of project glasswing (ex-wing)

render_template_to_json_file() performs a two-pass Jinja render: the first pass expands the template with user-supplied template_data, then the resulting string is wrapped in jinja2.Template() and rendered again. Because the default (non-sandboxed) Template class is used and DebugUndefined leaves unknown placeholders intact, any value in template_data that contains Jinja delimiters (e.g. in advisory.spec.synopsis / description / topic / content rendered by templates/advisory.yaml.jinja) becomes live template syntax in pass two. create_advisory.py invokes this path with advisory data sourced from release inputs, so a tenant able to influence those text fields can reach Python object-walk gadgets and execute arbitrary code inside the release-service-utils pod, which holds GitLab, Pyxis and signing credentials.

*utils/apply_template.py:73-92 — output of pass 1 re-evaluated as a non-sandboxed Jinja template*
```python
template = Template(
    template_file.read(),
    extensions=[AnsibleCoreFiltersExtension],
    undefined=DebugUndefined,
)
...
content = template.render(template_data)
...
# try 2nd pass
content = Template(content).render(template_data)
```


Note You need to log in before you can comment on or make changes to this bug.