DB-GPT rendered uploaded SKILL.md instructions as unrestricted Jinja2 template code while building a model prompt. The malicious template could access Python objects in the application before the LLM received the text. CVE-2026-123020 describes service-context execution via an upload/chat path with weak default authentication. DB-GPT 0.8.2 is identified as…
Inspect the ClaimsCase · DiggingBeagle record
DB-GPT executed untrusted uploaded SKILL.md templates before model invocation
DB-GPT rendered uploaded SKILL.md instructions as unrestricted Jinja2 template code while building a model prompt. CVE-2026-123020 describes service-context execution via an upload/chat path with weak default authentication.
Public disclosure: Nov 5, 2026
Reported security vulnerability; exploitation prerequisites and tested version scope matter. No real-world exploitation is established unless separately reported.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade C
- Remediation
- patch available
- AI role
- AGAINST AI
Basis and provenance
research demonstration; demonstrated. The cited primary disclosure supports the specific sequence and boundaries described here: A caller uploads or supplies a SKILL.md artifact accepted by the DB-GPT skill service. The evidence does not independently establish consequences beyond the record's supported outcome; a numerical impact band cannot be justified from the available evidence. Evidence grade C reflects the source attribution and independent verification limits.
Assessed Nov 7, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-DB07-019-OUTCOME · CLM-DB07-019-MECHANISM · CLM-ENR-DB07-019-JINJA-FIXED-VERSION · Advisory: DB-GPT uploaded SKILL.md executes Python while Jinja2 renders model prompt before LLM sees it
At a glance
Keep untrusted skill text literal; use sandboxed templating with explicit variable restrictions and a meaningful upload permission boundary.
Read the implicationsResearcher proof with unreviewed GHSA, no known deployment breach; not conventional model prompt injection.
Limits and uncertaintyFull account
DB-GPT rendered uploaded SKILL.md instructions as unrestricted Jinja2 template code while building a model prompt. The malicious template could access Python objects in the application before the LLM received the text.
CVE-2026-123020 describes service-context execution via an upload/chat path with weak default authentication. DB-GPT 0.8.2 is identified as the fix; the advisory reports a controlled proof rather than a known breach.
The untrusted surface was an uploaded skill instruction file, but the execution boundary was a template engine rather than a language model. DB-GPT's FileBasedSkill.get_prompt used unrestricted Jinja2 processing to turn text into the prompt delivered to the assistant. Expressions in SKILL.md could therefore reach Python objects inside the service while the system assembled a prompt. The issue must not be described as the model choosing to obey a malicious instruction. The advisory identifies version 0.8.2 and patch a9e7a3c as the corrected implementation, though independent deployment verification is outside this research. Literal skill content and sandboxed, tightly scoped template variables would remove the pre-model execution mechanism.
The attacker-controlled material is ostensibly an instruction file, yet the dangerous interpreter is Jinja2, not the language model. Rendering that file as a template can execute Python objects before a model sees the prompt. Upload authorization and strict template evaluation therefore matter even if the eventual model would refuse a malicious instruction. The separate DB-GPT model-loading and CodeAction vulnerabilities have different triggers; shared application ownership does not make this one a model-generated shell attack.
Mechanism and trust boundary
- 01
A caller uploads or supplies a SKILL.md artifact accepted by the DB-GPT skill service.
- 02
The prompt builder interprets that untrusted text as a Jinja2 template and evaluates expressions with access to Python objects.
- 03
Code executes in the DB-GPT application context before the eventual prompt is presented to any model.
Claims & evidence
CLM-DB07-019-OUTCOMECVE-2026-123020 describes service-context execution via an upload/chat path with weak default authentication. DB-GPT 0.8.2 is identified as the fix; the advisory reports a controlled proof rather than a known breach.supported
Basis: reported finding
- supportsAdvisory: DB-GPT uploaded SKILL.md executes Python while Jinja2 renders model prompt before LLM sees itprimary disclosure
GHSA-x327-5gx8-j9v4; FileBasedSkill.get_prompt and Template.render
CLM-DB07-019-MECHANISMDB-GPT rendered uploaded SKILL.md instructions as unrestricted Jinja2 template code while building a model prompt. The malicious template could access Python objects in the application before the LLM received the text.supported
Basis: reported finding
- supportsAdvisory: DB-GPT uploaded SKILL.md executes Python while Jinja2 renders model prompt before LLM sees itprimary disclosure
GHSA-x327-5gx8-j9v4; FileBasedSkill.get_prompt and Template.render
CLM-ENR-DB07-019-JINJA-FIXED-VERSIONThe DB-GPT skill-template advisory identifies version 0.8.2 as the correction for pre-model Jinja template execution; the demonstrated code path executes while constructing the prompt, not because the model follows the SKILL.md instructions.supported
Basis: reported finding
- supportsAdvisory: DB-GPT uploaded SKILL.md executes Python while Jinja2 renders model prompt before LLM sees itprimary disclosure
GHSA-x327-5gx8-j9v4, FileBasedSkill.get_prompt, patched release
Implications
Keep untrusted skill text literal; use sandboxed templating with explicit variable restrictions and a meaningful upload permission boundary.
Unknowns and contradictions
- Researcher proof with unreviewed GHSA, no known deployment breach; not conventional model prompt injection.
Sources and citation
Material revision history
- Nov 7, 2026 · Published version · first publication · revision 227