Zero Radar
← feed
CriticalVulnerabilityCVE-2026-119717updated 30 Oct 2026, 20:26 UTC

pybars4 template engine lets crafted templates run Python code

If an app uses pybars4 to render Handlebars templates and lets outsiders supply or influence those templates, an attacker can make the app run their own Python code on the server. The attacker could then read or change data and take over th

Official, 2 sources
SeverityCriticalCVSS 9.2 of 10
Being exploited?UnclearNo reports either way yet
Fix available?UnclearNo fixed version published in the sources yet
How sure is this?Official, 2 sourcesBacked by an official source

How the attack works simplified

  1. 1Attacker crafts templateMalicious bracketed segment in helper or block argument
  2. 2App renders templatepybars4 compiles the template without escaping the segment
  3. 3Code breaks outSegment escapes the resolve() string literal
  4. 4Python code runsRuns inside the application process
  5. ResultAttacker executes code on the server

What happened

In pybars4 through 0.9.13, pybars/_compiler.py fails to escape bracketed path segments in Handlebars templates, so a crafted segment in a helper or block argument can break out of the generated resolve() string literal and execute arbitrary Python code in the application process.

Why it is dangerous: Anyone who can submit or modify a template processed by pybars4 may gain full code execution on the server, exposing data, credentials, and the host itself. Services that render user-supplied templates are most at risk.

Are you affected?

You are affected if you run pybars4 version 0.9.13 or earlier and render templates that can contain untrusted input.

pybars4 through 0.9.13

What to do

  1. Check whether your application uses pybars4 and which version is installed.
  2. Stop rendering untrusted or user-supplied Handlebars templates with pybars4 until a fixed version is installed.
  3. Update pybars4 to a version newer than 0.9.13 once the maintainers release a fix, and check the GitHub advisory GHSA-x54v-7mw2-5rrx for patch details.
  4. Run the application with least privileges and restrict outbound network access to limit damage if exploited.

Timeline

  1. 30 Oct 2026, 16:17 UTC
    Publicly disclosed
  2. 30 Oct 2026, 16:17 UTC
    Reported by NVD · NVD
  3. 30 Oct 2026, 16:18 UTC
    Picked up by Zero Radar
  4. 30 Oct 2026, 20:26 UTC
    GitHub Advisory reported on it · GitHub Advisory

Sources 2 reports, oldest first

Official vendor, government CERT or advisory database

Technical details

ID
CVE-2026-119717 · GHSA-x54v-7mw2-5rrx
CVSS
9.2 / 10
EPSS
0.6% chance of exploitation within 30 days
Disclosed
30 Oct 2026, 16:17 UTC
On Zero Radar
30 Oct 2026, 16:18 UTC (1 min after disclosure)
Last change
30 Oct 2026, 20:26 UTC

The plain-language parts and the attack diagram were written by an AI model (anthropic/claude-haiku-5.5) from the sources above. Facts like versions, exploitation and dates come from the sources themselves. How Zero Radar works

pybars4 template engine lets crafted templates run Python code · Zero Radar