Skip to main content

pybars4 EUVDEUVD-2026-114122

| CVE-2026-119717 CRITICAL
Code Injection (CWE-94)
2026-10-30 VulnCheck GHSA-x54v-7mw2-5rrx
9.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Supply attacker-controlled Handlebars template
  2. Delivery
    Craft bracketed path segment in helper/block argument
  3. Exploit
    Break out of generated resolve() string literal
  4. Execution
    Execute injected Python in application process
  5. Impact
    Full application/host compromise

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The application must compile a Handlebars template whose SOURCE is attacker-influenced - specifically a helper or block argument containing a crafted bracketed path segment - not merely render untrusted data through a trusted template. This is the concrete prerequisite: control over template text reaching pybars4's compiler. LIMITING FACTORS: in the typical configuration where templates are static and developer-authored, untrusted input never reaches the compiler and the flaw is not reachable; the CVSS AC:H/AT:P indicates the trigger is not satisfied by default inputs. Affected: pybars4 through 0.9.13; the available sources do not state a fixed version. No authentication is modelled (PR:N), but the trust-boundary requirement, not auth, is the real gate.

Impact

Signals conflict, and the gap between them is the whole story. The CVSS 4.0 base score of 9.2 (Critical) reflects full confidentiality/integrity/availability loss on the vulnerable system (VC:H/VI:H/VA:H) via a network vector with no privileges or user interaction (AV:N/PR:N/UI:N), which reads as a top-priority RCE. But the same vector carries AC:H and AT:P, signalling that non-trivial attack requirements must be met, and the vuln.today Decision label is 'monitor' - the lowest urgency tier - not act_now or emergency. CISA KEV status is not indicated (treat as not listed), no EPSS probability was supplied, and no exploit is confirmed as weaponized; the references are advisories (VulnCheck and a third-party write-up) describing the mechanism rather than a verified working exploit. The decisive, undetermined variable is trust boundary: the flaw only matters if the application compiles attacker-controlled Handlebars template SOURCE (not merely untrusted data rendered through a trusted template). In the common deployment where templates are developer-authored and static, real-world risk is low despite the Critical score; where an app accepts user-supplied templates, this is effectively server-side template injection yielding code execution and should be treated as high priority. Net: high CVSS, but real priority is 'monitor' pending confirmation of whether your deployment exposes template source to untrusted input.

Exploit ScenarioDerived

An application uses pybars4 (≤0.9.13) and compiles Handlebars template strings that originate, in whole or part, from an untrusted source (e.g. a user-customisable report or email template). The attacker submits a template containing a crafted bracketed path segment inside a helper or block argument that breaks out of the generated resolve() string literal, so when the template is compiled the injected Python executes in the application process. VulnCheck and a third-party advisory describe the technique, but no exploit is confirmed as verified working code at time of analysis.

Monitor Track and reassess. Why: Vendor states no customer action required.
No patch listed yet 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Code injection in pybars4 through 0.9.13 lets an attacker who controls the source text of a Handlebars template execute Python in the application process, because crafted bracketed path segments in a helper or block argument are not escaped when the compiler emits its resolve() string literal. The supplied CVSS 4.0 score is 9.2, but the independent assessment treats exploitation as gated by template-source control rather than merely untrusted rendered data; static, developer-authored templates do not satisfy that prerequisite. KEV status is not indicated in the supplied data, no public exploit identified at time of analysis, and the vuln.today priority label is monitor.

RemediationAI

No vendor-released patch or fixed version is identified in the available sources for pybars4 through 0.9.13; verify the current status at the upstream repository (https://github.com/up9inc/pybars4) and the VulnCheck advisory (https://www.vulncheck.com/advisories/pybars4-through-0.9.13-code-injection-via-bracketed-path-segments) before upgrading. Until a fixed release is confirmed, prevent attacker-controlled template source from reaching pybars4's compiler: keep Handlebars templates static and developer-authored, and do not compile user-supplied templates or user-editable helper or block argument path segments. The trade-off is loss of user-customizable or dynamically supplied templates; rendering untrusted data through a trusted template does not satisfy the prerequisite described in the assessment. If dynamic templates are a business requirement, run template compilation in a separate process or container without sensitive credentials or filesystem access, accepting the added operational complexity.

Affected VersionsENISA

pybars4 0 ≤0.9.13

Affected Packages

euvd pybars4 no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

pybars4 is a Python implementation of Handlebars, and pybars/_compiler.py translates template constructs into generated Python source. The flaw is CWE-94 code injection: bracketed path segments used in helper or block arguments are inserted into a generated resolve() string literal without escaping, so a crafted segment can terminate the literal and inject Python statements. The affected CPE is cpe:2.3:a:up9inc:pybars4:*:*:*:*:*:*:*:*, with the issue described through release 0.9.13; the cited vulnerable code is pybars/_compiler.py lines 153-154. The assessed vector is AV:N/AC:H/PR:N/UI:N, so no authentication is modelled, but the practical gate is control of template source text reaching the compiler, not rendering attacker data through a trusted template. In a deployment with only static developer-authored templates, attacker-controlled input does not reach the vulnerable compiler path; the AC:H/AT:P metrics reflect that prerequisite. The available sources do not state a fixed version.

Know when Pybars4 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 9.2 CRITICAL
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Network-reachable code injection with no auth or UI (AV:N/PR:N/UI:N) but requiring the app to compile attacker-controlled template source, an uncommon condition (AC:H); code runs in-process so S:U with full C/I/A.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

pybars4 through 0.9.13 contains a code injection vulnerability in pybars/_compiler.py that allows attackers to execute Python code via unescaped bracketed path segments in Handlebars templates. Attackers can supply a template with a crafted segment in a helper or block argument to break out of the generated resolve() string literal and execute code in the application process.

Executive ViewAI

Why It Matters

CVE-2026-119717 is a critical code injection flaw in pybars4 (versions through 0.9.13) that allows Python code execution if an attacker can control the source of a Handlebars template. This means teams using pybars4 to process externally sourced templates could face full application compromise. Leadership should prioritize identifying and mitigating this risk, especially where user-supplied or third-party templates are involved.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict template source to trusted developers only, validate and sanitize templates to disallow bracketed path segments, run template compilation in a sandboxed environment with minimal privileges, and consider migrating to an alternative templating engine.

Threat Intelligence Overview

EPSS Score
0.6%
Top 54% exploitable
Prevalence
Low
niche Python Handlebars library (up9inc fork), limited production footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available No
Active threat No
Deciding rule
Vendor states no customer action required
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy