---
title: "Python 用 Handlebars テンプレートエンジン pybars3 にコード実行の欠陥（CVE-2026-119716、CVSS v3.1 8.1）: 0.9.7 以下が対象、修正版は確認できず"
url: https://n-t-p.io/worldsecurity/articles/pybars3-code-injection-bracketed-path-segments-unpatched-cve-2026-119716
lang: ja
kind: 速報
category: 脆弱性・CVE
author: World Security 編集部
published: 2026年11月2日
updated: 2026年11月2日
severity: 高
cve: CVE-2026-119716
---

# Python 用 Handlebars テンプレートエンジン pybars3 にコード実行の欠陥（CVE-2026-119716、CVSS v3.1 8.1）: 0.9.7 以下が対象、修正版は確認できず

> **TL;DR:** Python 用 Handlebars テンプレートエンジン pybars3 の 0.9.7 以下で、角括弧のパスの無害化不足によるコードインジェクション（CVE-2026-119716、CWE-94、CVSS v3.1 8.1／v4.0 9.2）。テンプレートを指定できる場合に Python コードを実行される。修正版は確認できず。KEV なし、EPSS 0.37%、悪用は未確認。

**要点**
- pybars3 0.9.7 以下の pybars/_compiler.py が、角括弧で囲んだパスの区切りを無害化せずに Python のコードへ組み立てており、テンプレートに細工した引数を入れると、アプリケーションのプロセス内で任意の Python コードを実行できる（CWE-94）
- CVSS は v3.1 が 8.1（HIGH、攻撃の複雑さは高）、v4.0 が 9.2（CRITICAL）で、いずれも VulnCheck＝CNA の値。NVD の状態は Deferred で独自評価なし
- 成立には、攻撃者がテンプレートの内容を指定できることが前提（推定）。KEV なし、EPSS は 0.37%（2026-11-01 付）、悪用は未確認
- PyPI の最新版は 0.9.7（2019-11-05）のままで、修正版は確認できず。NVD にはサポート終了（unsupported-when-assigned）のタグがあり、今後も修正が出ない可能性がある（推定）
- 自社のアプリが pybars3 を使い、利用者がテンプレートを指定できる場合は、その機能の停止・制限や置き換えを検討する（推定）

NVD は 2026-10-30 に、Python 用の Handlebars テンプレートエンジン pybars3 の 0.9.7 以下に、コードインジェクションの脆弱性（CVE-2026-119716）を登録しました。pybars/_compiler.py が、角括弧で囲んだパスの区切り（bracketed path segments）を無害化せずに Python のコードへ組み立てており、テンプレートを書ける者が、ヘルパーやブロックの引数に細工した文字列を入れると、文字列リテラルを抜けて、アプリケーションのプロセス内で Python コードを実行できる、という内容です。登録元（CNA）は VulnCheck で、CVSS は v3.1 が 8.1（HIGH）、v4.0 が 9.2（CRITICAL）です。攻撃の複雑さは「高」とされています。

## 何が起きるか

- 対象は pybars3 の 0.9.7 以下です（NVD の影響範囲。パッケージは PyPI の pybars3）。
- 原因は、テンプレートのコンパイル時に、角括弧のパスを Python のソースへ埋め込む際の無害化が足りないことです（CWE-94、コードの不適切な制御）。
- 攻撃者がテンプレートの内容を指定できるアプリケーション、たとえば利用者が自由にテンプレートを登録・編集できる機能や、外部から受け取ったテンプレートを描画する機能では、サーバー側で任意の Python コードを実行される可能性があります。
- 一方、テンプレートをアプリケーション開発者だけが書き、利用者の入力はデータとしてしか渡さない構成では、この経路は成立しません（推定）。CVSS の AC:H（複雑さ高）も、こうした前提条件を反映していると考えられます。
- NVD の登録には「割り当て時点でサポート終了（unsupported-when-assigned）」のタグが付いています。

## 修正の状況

- 修正版は確認できていません。PyPI 上の最新版は 0.9.7（2019-11-05 公開）で、それ以降のリリースはありません（2026-11-02 取得）。
- 開発元のリポジトリ（GitHub: wbond/pybars3）に、修正のコミットやリリースがあるかは本稿では確認できていません。NVD の参照先には、脆弱なコードの箇所（0.9.7 の _compiler.py）、リポジトリ、VulnCheck の勧告があります。
- サポート終了のタグから、今後も修正版が出ない可能性があります（推定）。

## 数値と出典（2026-11-02 時点）

| CVE | 対象 | 必要な権限 | CVSS v3.1 | CVSS v4.0 | CWE | EPSS |
|---|---|---|---|---|---|---|
| CVE-2026-119716 | pybars3 0.9.7 以下 | 不要（テンプレートを指定できることが前提） | 8.1 | 9.2 | CWE-94 | 0.37%（2026-11-01 付） |

- NVD の状態は Deferred（保留）で、NVD 自身の評価はありません。CVSS は VulnCheck（CNA）の値です。v3.1 のベクターは AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H（8.1）、v4.0 のベクターは AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H です。
- EPSS（FIRST）は 0.37% で、パーセンタイルは 0.31（脆弱性全体の下位 31% の位置、2026-11-01 付）です。
- KEV（CISA の悪用確認済みカタログ）には掲載がありません（2026-11-02 取得）。
- 悪用の有無は確認できていません。

## severity を high とした理由

任意の Python コードを実行でき、機密性・完全性・可用性のすべてに影響しますが、成立には攻撃者がテンプレートの内容を指定できることが前提で、複雑さは「高」とされています。EPSS は 0.37% と低く、KEV にも載っておらず、実際の悪用も確認していません。一方、修正版が確認できず、サポートも終了しているため、該当する構成では自力での回避が必要です。以上から、CVSS v3.1（8.1）に沿って high としています。

## 対応として考えられること

1. 自社のアプリケーションやビルド環境が pybars3 を使っているかを確認します。依存関係の一覧（requirements.txt、lock ファイル、pip list など）で、pybars3 の版が 0.9.7 以下かを見ます。
2. 使っている場合、テンプレートの内容を利用者や外部から受け取っていないかを確認します。開発者が管理するテンプレートだけを使い、利用者の入力をデータとしてのみ渡す構成であれば、この経路は成立しません（推定）。
3. 利用者がテンプレートを指定できる機能がある場合は、その機能を止めるか、信頼できる利用者だけに限ります（推定）。
4. 長期的には、保守されているテンプレートエンジンへの置き換えを検討します。置き換えが難しい間は、描画するプロセスの権限を最小限にし、外部へのネットワークと機密情報のあるファイルから切り離します（推定）。
5. 開発元のリポジトリと PyPI で、新しい版や修正が出ていないかを定期的に確認します。

## 未確認の点

- 実際の攻撃での悪用は確認していません。
- 修正版・回避策の有無、開発元の回答は確認できていません。
- 攻撃の具体的な手順と、どの程度の前提条件で成立するかは確認していません。
- NVD 自身の評価は未実施（Deferred）です。CVSS は CNA の値です。


## 出典
- [NVD CVE-2026-119716](https://nvd.nist.gov/vuln/detail/CVE-2026-119716) — NIST NVD
- [VulnCheck 勧告（pybars3 through 0.9.7 Code Injection via Bracketed Path Segments）](https://www.vulncheck.com/advisories/pybars3-through-0.9.7-code-injection-via-bracketed-path-segments) — VulnCheck
- [pybars3 リポジトリ（0.9.7 の _compiler.py）](https://github.com/wbond/pybars3/blob/0.9.7/pybars/_compiler.py#L159-L160) — GitHub
- [PyPI pybars3](https://pypi.org/project/pybars3/) — PyPI
- [FIRST EPSS](https://api.first.org/data/v1/epss?cve=CVE-2026-119716) — FIRST
- [CISA KEV カタログ](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) — CISA

---
出典: World Security（株式会社NTP） https://n-t-p.io/worldsecurity/articles/pybars3-code-injection-bracketed-path-segments-unpatched-cve-2026-119716