CVE-2026-107717
Banks generates meaningful LLM prompts using a simple template language. Prior to 2.5.0, Banks Prompt.chat_messages() attempts to parse every line of rendered template output as ChatMessage JSON. When an application renders untrusted data and passes the returned ChatMessage objects to an LLM provider, attacker-controlled JSON can cross the prompt boundary and become a system, assistant, or tool message because ChatMessage.role accepts arbitrary strings. This can override application instructions, alter the intended prompt structure, or confuse downstream tool and message handling. This issue is fixed in version 2.5.0.
CVSS
- Version: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
- Base score: 6.5
Exploitation probability (EPSS)
- Probability of exploitation in the next 30 days: 0.28%
- Percentile among all scored CVEs: 19
- Score date: 10/15/2026
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
🎯 ATT&CK techniques
How this vulnerability is exploited and what the attacker gains, in MITRE ATT&CK terms.
- Exploitation
T1190Exploit Public-Facing Applicationinitial access85 % - Primary impact
T1565.002Transmitted Data Manipulationimpact80 % - Secondary impact
T1059Command and Scripting Interpreterexecution65 %
Red sin privilegios (AV:N, PR:N). Inyección de JSON en prompts LLM para manipular mensajes de sistema y alterar instrucciones de la aplicación (CWE-20, validación insuficiente). Potencial ejecución de código a través de herramientas LLM.
Inferred by our analysis agent from the official description, CVSS vector and CWE, and checked by a supervisor. May contain errors.
🛡️ ATT&CK mitigations that cover these techniques
Affected technologies (1)
⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.
CWEs
- CWE-20
References
- https://github.com/masci/banks/commit/02172b816fb84f6a824cc09a8aca7416f53c12cb
- https://github.com/masci/banks/pull/78
- https://github.com/masci/banks/releases/tag/v2.5.0
- https://github.com/masci/banks/security/advisories/GHSA-hmq2-7hp6-7crh
- https://github.com/masci/banks/security/advisories/GHSA-hmq2-7hp6-7crh
Raw JSON (NVD)
Show
{
"id": "CVE-2026-107717",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-107717",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-10-13T16:15:40.228940Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 6.5,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N",
"integrityImpact": "LOW",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "NONE",
"confidentialityImpact": "LOW"
},
"impactScore": 2.5,
"exploitabilityScore": 3.9
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "masci",
"product": "banks",
"versions": [
{
"status": "affected",
"version": "< 2.5.0"
}
]
}
]
}
],
"published": "2026-10-08T22:17:27.560",
"references": [
{
"url": "https://github.com/masci/banks/commit/02172b816fb84f6a824cc09a8aca7416f53c12cb",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/masci/banks/pull/78",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/masci/banks/releases/tag/v2.5.0",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/masci/banks/security/advisories/GHSA-hmq2-7hp6-7crh",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/masci/banks/security/advisories/GHSA-hmq2-7hp6-7crh",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-20"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Banks generates meaningful LLM prompts using a simple template language. Prior to 2.5.0, Banks Prompt.chat_messages() attempts to parse every line of rendered template output as ChatMessage JSON. When an application renders untrusted data and passes the returned ChatMessage objects to an LLM provider, attacker-controlled JSON can cross the prompt boundary and become a system, assistant, or tool message because ChatMessage.role accepts arbitrary strings. This can override application instructions, alter the intended prompt structure, or confuse downstream tool and message handling. This issue is fixed in version 2.5.0."
}
],
"lastModified": "2026-10-13T17:17:16.860",
"sourceIdentifier": "security-advisories@github.com"
}