Description
Copier is a library and CLI app for rendering project templates. In versions 9.5.0 through 9.15.1, the `trust` setting's prefix match
(`copier/_settings.py`) compares the template URL against a trusted prefix with a raw `str.startswith` and no path normalization, while the URL is normalized when the template is actually fetched (`Path.resolve()` for local paths; libcurl dot-segment removal for `https`). A template reference that textually starts with a trusted prefix but contains `..` is therefore granted trust yet resolves to a different, attacker-controlled template, whose `tasks` / `migrations` / `jinja_extensions` then run without the `--trust` prompt — arbitrary command execution. Version 9.15.2 patches the issue.
Published: 2026-07-08
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability occurs when Copier verifies trust prefixes for template URLs using a raw string start‑with comparison without normalizing the path. A malicious template reference that begins with a trusted prefix but contains path traversal components gains trust, resolving to an attacker‑controlled template that runs its tasks, migrations, or Jinja extensions without prompting. This flaw allows arbitrary code execution in the context of the user running Copier, matching CWE‑22 Path Traversal and CWE‑94 Code Injection.

Affected Systems

The issue affects the Copier library and CLI tool, specifically the copier-org:copier product. Versions from 9.5.0 through 9.15.1 are vulnerable. Any environment that invokes these versions—local development machines, CI/CD pipelines, or automation scripts—introduces risk.

Risk and Exploitability

The CVSS score of 8.8 indicates high severity. The EPSS score is below 1%, indicating low current exploitation probability, and the vulnerability is not listed in the CISA KEV catalog. Based on the description, the likely attack vector is a crafted template URL or local path supplied to Copier that matches a trusted prefix through string traversal, leading to arbitrary command execution. The high severity combined with the possibility of remote or local execution means affected users should address the flaw promptly.

Generated by OpenCVE AI on July 26, 2026 at 17:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Copier version 9.15.2 or later, where the trust prefix check uses path normalization.
  • If an upgrade is not immediately possible, limit trust prefixes to absolute URLs without traversal segments, and validate them against a strict whitelist.
  • Ensure that the trust setting only includes simple, non‑normalizable fragments and avoid generic domain prefixes that could match malicious paths.

Generated by OpenCVE AI on July 26, 2026 at 17:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 09 Jul 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 08 Jul 2026 17:00:00 +0000

Type Values Removed Values Added
First Time appeared Copier-org
Copier-org copier
Vendors & Products Copier-org
Copier-org copier

Wed, 08 Jul 2026 15:45:00 +0000

Type Values Removed Values Added
Description Copier is a library and CLI app for rendering project templates. In versions 9.5.0 through 9.15.1, the `trust` setting's prefix match (`copier/_settings.py`) compares the template URL against a trusted prefix with a raw `str.startswith` and no path normalization, while the URL is normalized when the template is actually fetched (`Path.resolve()` for local paths; libcurl dot-segment removal for `https`). A template reference that textually starts with a trusted prefix but contains `..` is therefore granted trust yet resolves to a different, attacker-controlled template, whose `tasks` / `migrations` / `jinja_extensions` then run without the `--trust` prompt — arbitrary command execution. Version 9.15.2 patches the issue.
Title Copier: trust-prefix bypass via path traversal runs tasks unprompted
Weaknesses CWE-22
CWE-94
References
Metrics cvssV4_0

{'score': 8.8, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H'}


Subscriptions

Copier-org Copier
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-09T13:47:38.033Z

Reserved: 2026-06-11T15:50:01.281Z

Link: CVE-2026-53951

cve-icon Vulnrichment

Updated: 2026-07-09T13:47:03.731Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-26T17:45:17Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

  • CWE-94

    Improper Control of Generation of Code ('Code Injection')