目次(6)

CVE-2026-119716
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 としています。
対応として考えられること
- 自社のアプリケーションやビルド環境が pybars3 を使っているかを確認します。依存関係の一覧(requirements.txt、lock ファイル、pip list など)で、pybars3 の版が 0.9.7 以下かを見ます。
- 使っている場合、テンプレートの内容を利用者や外部から受け取っていないかを確認します。開発者が管理するテンプレートだけを使い、利用者の入力をデータとしてのみ渡す構成であれば、この経路は成立しません(推定)。
- 利用者がテンプレートを指定できる機能がある場合は、その機能を止めるか、信頼できる利用者だけに限ります(推定)。
- 長期的には、保守されているテンプレートエンジンへの置き換えを検討します。置き換えが難しい間は、描画するプロセスの権限を最小限にし、外部へのネットワークと機密情報のあるファイルから切り離します(推定)。
- 開発元のリポジトリと PyPI で、新しい版や修正が出ていないかを定期的に確認します。
未確認の点
- 実際の攻撃での悪用は確認していません。
- 修正版・回避策の有無、開発元の回答は確認できていません。
- 攻撃の具体的な手順と、どの程度の前提条件で成立するかは確認していません。
- NVD 自身の評価は未実施(Deferred)です。CVSS は CNA の値です。
この記事について
- 執筆・編集
- World Security 編集部
出典
- NVD CVE-2026-119716(NIST NVD)
- VulnCheck 勧告(pybars3 through 0.9.7 Code Injection via Bracketed Path Segments)(VulnCheck)
- pybars3 リポジトリ(0.9.7 の _compiler.py)(GitHub)
- PyPI pybars3(PyPI)
- FIRST EPSS(FIRST)
- CISA KEV カタログ(CISA)




