CVE-2026-44209: Banks: Critical Remote Code Execution (RCE) via Jinja2 SSTI
Banks generates meaningful LLM prompts using a template language that makes sense. Prior to 2.4.2, banks uses jinja2.Environment() (unsandboxed) to render prompt templates. Applications that pass user-supplied strings as the template argument to Prompt() are vulnerable to Server-Side Template Injection (SSTI), which can lead to Remote Code Execution (RCE) on the host system. This vulnerability is fixed in 2.4.2.
Security readout for executives and security teams
Plain-English summary
Banks versions before 2.4.2 can allow an attacker-controlled prompt template to execute code on the host. Exposure is conditional: the application must pass user-supplied strings as the template argument to Prompt(). A successful attack could compromise sensitive data, alter systems, or disrupt service.
Executive priority
Prioritize rapid assessment and remediation for externally reachable or sensitive applications that construct Prompt() templates from user input. Upgrade confirmed exposed deployments promptly. Systems using trusted static templates still require version verification, but the supplied evidence indicates lower immediate likelihood of triggering this flaw.
Technical view
Banks used an unsandboxed jinja2.Environment() to render prompt templates before version 2.4.2. When untrusted input reaches Prompt() as the template, server-side template injection may result in remote code execution. The issue is classified as CWE-1336 and CWE-917, with CVSS 3.1 score 7.5.
Likely exposure
Applications using Banks below 2.4.2 are potentially affected only where untrusted input can become the Prompt() template. Deployments using fixed, trusted templates are not shown as exploitable by the supplied evidence. Internet exposure increases concern but is not required by the described data flow.
Exploitation context
The CVSS vector describes network reachability, high attack complexity, no required privileges, and required user interaction. The source bundle marks this CVE as absent from KEV and provides no evidence of active exploitation or public weaponization.
Researcher notes
The vulnerable behavior is specifically unsandboxed Jinja2 template rendering, not ordinary insertion of user data into a trusted template. Validate source-to-sink reachability into Prompt()'s template argument. The supplied sources establish the affected boundary and fix release, but do not establish exploitation prevalence or identify affected downstream applications.
Mitigation direction
Upgrade Banks to version 2.4.2 or later.
Prevent user-controlled strings from being passed as the Prompt() template.
Use fixed, trusted templates while upgrade work is pending.
Review vendor guidance and the linked security advisory for updated instructions.
Validation and detection
Inventory deployed Banks versions and identify every installation below 2.4.2.
Trace all Prompt() calls to determine whether template arguments can contain untrusted input.
Confirm upgraded environments resolve Banks to version 2.4.2 or later.
Review relevant application and host telemetry for unexpected template-processing behavior.
Regression-test prompt rendering using fixed templates and safely handled user data.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-1336: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
5Timeline events
2ADP providers
6Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-1336 · source CWE mapping
Improper Neutralization of Special Elements Used in a Template Engine
Improper Neutralization of Special Elements Used in a Template Engine represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection')
Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.