CVE-2026-53951 json
Copier: trust-prefix bypass via path traversal runs tasks unprompted
published 4mo ago modified 17d ago also EUVD-2026-42309 , GHSA-9gmc-jqmh-3rvm , PYSEC-2026-3818
- cvss
- 8.8
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 18%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi copier 9.15.2
- copier-org copier 9.15.2
Is CVE-2026-53951 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 4mo ago
Exploit prediction
0.26% chance of exploitation in the next 30 days, higher than 18% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/copier-org/copier/security/advisories/GHSA-9gmc-jqmh-3rvm referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.8 | 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 |
| CNA | 4.0 | 8.8 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | copier | >=9.5.0, <9.15.2 |
9.15.2 |
Affected products
- copier-org copier
Classification
References
-
github.com
/copier-org/copier/security/advisories/GHSA-9gmc-jqmh-3rvm
exploit, web
-
github.com
/copier-org/copier/releases/tag/v9.15.2
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-53951
advisory
-
github.com
/copier-org/copier
package
-
pypi.org
/project/copier
package
-
github.com
/advisories/GHSA-9gmc-jqmh-3rvm
advisory
Sources
- CVE List CVE-2026-53951
- GitHub Advisory GHSA-9gmc-jqmh-3rvm
- NVD CVE-2026-53951
- OSV PYSEC-2026-3818
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.