<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-03T14:31:14.443233+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/cve-2026-34726</id>
    <title>CVE-2026-34726 — Copier `_subdirectory` allows template root escape via parent-directory traversal</title>
    <updated>2026-10-03T14:31:14.445787+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> copier-org copier</p>
<p>Copier is a library and CLI app for rendering project templates. Prior to version 9.14.1, Copier's _subdirectory setting is documented as the subdirectory to use as the template root. However, the current implementation accepts parent-directory traversal such as .. and uses it directly when selecting the template root. As a result, a template can escape its own directory and make Copier render files from the parent directory without --UNSAFE. This issue has been patched in version 9.14.1.</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/cve-2026-34726"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-85v3-4m8g-hrh6</id>
    <title>GHSA-85v3-4m8g-hrh6 — Copier `_subdirectory` allows template root escape via parent-directory traversal</title>
    <updated>2026-10-03T14:31:14.445869+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: copier</p>
<p>### Summary</p>
<p>Copier's `_subdirectory` setting is documented as the subdirectory to use as the template root. However, the current implementation accepts parent-directory traversal such as `..` and uses it directly when selecting the template root.</p>
<p>As a result, a template can escape its own directory and make Copier render files from the parent directory without `--UNSAFE`.</p>
<p>### Details</p>
<p>The relevant code path is:</p>
<p>1. the template defines `_subdirectory`
2. Copier renders that string
3. `template_copy_root` returns `self.template.local_abspath / subdir`
4. Copier walks that directory as the template root</p>
<p>Relevant code:</p>
<p>- &lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/copier/_main.py#L1056-L1062&gt;
- &lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/copier/_template.py#L504-L513&gt;</p>
<p>The effective sink is:</p>
<p>```python
subdir = self._render_string(self.template.subdirectory) or ""
return self.template.local_abspath / subdir
```</p>
<p>There is no check that the resulting path stays inside the template directory.</p>
<p>The documentation for `_subdirectory` describes it as:</p>
<p>&gt; Subdirectory to use as the template root when generating a project.</p>
<p>and explains it as a way to separate template metadata from template source code:</p>
<p>&lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/docs/configuring.md#L1582-L1646&gt;</p>
<p>That description fits values like `template` or `poetry`, but not `..`.</p>
<p>### PoC</p>
<p>#…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-85v3-4m8g-hrh6"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/pysec-2026-2134</id>
    <title>PYSEC-2026-2134</title>
    <updated>2026-10-03T14:31:14.445943+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: copier</p>
<p>Copier is a library and CLI app for rendering project templates. Prior to version 9.14.1, Copier's _subdirectory setting is documented as the subdirectory to use as the template root. However, the current implementation accepts parent-directory traversal such as .. and uses it directly when selecting the template root. As a result, a template can escape its own directory and make Copier render files from the parent directory without --UNSAFE. This issue has been patched in version 9.14.1.</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/pysec-2026-2134"/>
  </entry>
</feed>
