CVE-2026-2969 json
datapizza-labs datapizza-ai Jinja2 Template prompt.py ChatPromptTemplate special elements used in a template engine
published 8mo ago modified 3mo ago also GHSA-q5xx-fxv3-xxqf , PYSEC-2026-2439 , EUVD-2026-7585
- cvss
- 4.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.8%
- EPSS 0.8% chance of exploitation in 30 days, percentile 55%
- public exploits
- 0
- none known
Summary
A flaw has been found in datapizza-labs datapizza-ai 0.0.2. Affected is the function ChatPromptTemplate of the file datapizza-ai-core/datapizza/modules/prompt/prompt.py of the component Jinja2 Template Handler. This manipulation of the argument Prompt causes improper neutralization of special elements used in a template engine. Remote exploitation of the attack is possible. The exploit has been published and may be used. The vendor was contacted early about this disclosure but did not respond in any way.
Is CVE-2026-2969 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 8mo ago
Exploit prediction
0.76% chance of exploitation in the next 30 days, higher than 55% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/hacktivesec/datapizza-ai-disclosure/blob/main/ssti.md#poc referenced PoC, tagged "exploit" by a source, unverified
- vuldb.com https://vuldb.com/?ctiid.347336 referenced PoC, tagged "exploit" by a source, unverified
- vuldb.com https://vuldb.com/?submit.755357 referenced PoC, tagged "exploit" by a source, unverified
- github.com https://github.com/hacktivesec/datapizza-ai-disclosure/blob/main/ssti.md referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 5.1 | CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P |
| CNA | 3.1 | 4.7 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L/E:P/RL:X/RC:R |
| CNA | 3.0 | 4.7 | CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L/E:P/RL:X/RC:R |
| CNA | 2.0 | 5.8 | AV:N/AC:L/Au:M/C:P/I:P/A:P/E:POC/RL:ND/RC:UR |
| CNA | 4.0 | 2.0 | CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CNA | 3.1 | 4.7 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L |
| NVD | 3.1 | 7.2 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H |
| CNA | 2.0 | 5.8 | AV:N/AC:L/Au:M/C:P/I:P/A:P |
| GitHub | 3.1 | 4.7 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L |
| OSV | 3.1 | 4.7 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | datapizza-ai-core | <=0.0.2 |
no fix listed |
Affected products
- datapizza-labs datapizza-ai
Classification
References
-
github.com
/hacktivesec/datapizza-ai-disclosure/blob/main/ssti.md#poc
exploit, third-party-advisory
-
vuldb.com
/?ctiid.347336
signature, permissions-required, web, exploit
-
vuldb.com
/?submit.755357
third-party-advisory, web, exploit
-
github.com
/hacktivesec/datapizza-ai-disclosure/blob/main/ssti.md
related, web, exploit, third-party-advisory
-
vuldb.com
/?id.347336
vdb-entry, technical-description, web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-2969
advisory
-
github.com
/datapizza-labs/datapizza-ai
package
-
pypi.org
/project/datapizza-ai-core
package
-
github.com
/advisories/GHSA-q5xx-fxv3-xxqf
advisory
Sources
- CVE List CVE-2026-2969
- GitHub Advisory GHSA-q5xx-fxv3-xxqf
- NVD CVE-2026-2969
- OSV PYSEC-2026-2439
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.