{"answers":{"affected":"5 open source packages ship an affected version, including giskard-agents. It affects 2 products.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-34172 exists.","fix":"Upgrade giskard-agents to a fixed version for your release line: 0.3.4 or 1.0.2b1.","what":"CVE-2026-34172 is a high-severity code injection vulnerability in Giskard-AI giskard-oss, published on 31 Mar 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-34172 and fix it if it is affected.\n\nWhat it is: CVE-2026-34172 is a high-severity code injection vulnerability in Giskard-AI giskard-oss, published on 31 Mar 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-34172 exists.\n\nAffected packages and fixed versions:\n- giskard-agents (PyPI): affected all versions; fixed in 0.3.4, 1.0.2b1\n- giskard-agents (PyPI): affected all versions; fixed in 0.3.4\n- giskard-agents (PyPI): affected all versions; fixed in 0.3.4\n- giskard-agents (PyPI): affected from 1.0.1a1; fixed in 1.0.2b1\n- giskard-agents (PyPI): affected from 1.0.1a1; fixed in 1.0.2b1\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-34172/ (Markdown: https://insights.sbomify.com/CVE-2026-34172/index.md)","id":"CVE-2026-34172","markdown":"https://insights.sbomify.com/CVE-2026-34172/index.md","name":"CVE-2026-34172","record":{"aliases":["GHSA-frv4-x25r-588m","PYSEC-2026-2487"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["code_execution"],"network_reachable":"yes","non_default_config":false,"product_category":"Python agentic testing library","requires_auth":"low_privilege","summary":"Attackers can achieve remote code execution by passing malicious input to ChatWorkflow.chat() due to unsafe Jinja2 template rendering.","user_interaction":"not_required","vuln_class":"code_injection"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"giskard-agent","vendor":"giskard"},{"product":"giskard-agents","vendor":"giskard"}],"cvss":{"score":7.7,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-1336","name":"Improper Neutralization of Special Elements Used in a Template Engine"}],"description":"Giskard is an open-source Python library for testing and evaluating agentic systems. Prior to versions 0.3.4 and 1.0.2b1, ChatWorkflow.chat(message) passes its string argument directly as a Jinja2 template source to a non-sandboxed Environment. A developer who passes user input to this method enables full remote code execution via Jinja2 class traversal. The method name chat and parameter name message naturally invite passing user input directly, but the string is silently parsed as a Jinja2 template, not treated as plain text. This issue has been patched in versions 0.3.4 and 1.0.2b1.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"Giskard Agents have Server-side template injection via ChatWorkflow.chat() using non-sandboxed Jinja2 Environment","id":"CVE-2026-34172","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"code_injection","year":"2026"},"n_packages":5,"n_references":1,"next":{"headline":"Privilege escalation in Hardware-Aware-Automated-MachineLearning NA","id":"CVE-2026-34175"},"packages":[{"ecosystem":"PyPI","fixed":["0.3.4","1.0.2b1"],"introduced":["0","1.0.1a1"],"last_affected":[],"package":"giskard-agents","purl":"pkg:pypi/giskard-agents","source":"PYSEC-2026-2487"},{"ecosystem":"PyPI","fixed":["0.3.4"],"introduced":["0"],"last_affected":[],"package":"giskard-agents","purl":null,"source":"GHSA-frv4-x25r-588m"},{"ecosystem":"PyPI","fixed":["0.3.4"],"introduced":["0"],"last_affected":[],"package":"giskard-agents","purl":"pkg:pypi/giskard-agents","source":"GHSA-frv4-x25r-588m"},{"ecosystem":"PyPI","fixed":["1.0.2b1"],"introduced":["1.0.1a1"],"last_affected":[],"package":"giskard-agents","purl":null,"source":"GHSA-frv4-x25r-588m"},{"ecosystem":"PyPI","fixed":["1.0.2b1"],"introduced":["1.0.1a1"],"last_affected":[],"package":"giskard-agents","purl":"pkg:pypi/giskard-agents","source":"GHSA-frv4-x25r-588m"}],"prev":{"headline":"Coolify: Account takeover via CSRF-able GET endpoint that resets password to attacker-known value","id":"CVE-2026-34171"},"products":["giskard-oss"],"published":"2026-03-31","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-03-31","vendors":["Giskard-AI"]},"summary":"Attackers can achieve remote code execution by passing malicious input to ChatWorkflow.chat() due to unsafe Jinja2 template rendering.","url":"https://insights.sbomify.com/CVE-2026-34172/"}