<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 14:31:10 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-34726 — Copier `_subdirectory` allows template root escape via parent-directory traversal</title>
      <link>https://db.gcve.eu/vuln/cve-2026-34726</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; copier-org copier&lt;/p&gt;
&lt;p&gt;Copier is a library and CLI app for rendering project templates. Prior to version 9.14.1, Copier&amp;#39;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; copier-org copier&lt;/p&gt;
&lt;p&gt;Copier is a library and CLI app for rendering project templates. Prior to version 9.14.1, Copier&amp;#39;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-34726</guid>
    </item>
    <item>
      <title>GHSA-85v3-4m8g-hrh6 — Copier `_subdirectory` allows template root escape via parent-directory traversal</title>
      <link>https://db.gcve.eu/vuln/ghsa-85v3-4m8g-hrh6</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: copier&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Copier&amp;#39;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.&lt;/p&gt;
&lt;p&gt;As a result, a template can escape its own directory and make Copier render files from the parent directory without `--UNSAFE`.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The relevant code path is:&lt;/p&gt;
&lt;p&gt;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&lt;/p&gt;
&lt;p&gt;Relevant code:&lt;/p&gt;
&lt;p&gt;- &amp;lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/copier/_main.py#L1056-L1062&amp;gt;
- &amp;lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/copier/_template.py#L504-L513&amp;gt;&lt;/p&gt;
&lt;p&gt;The effective sink is:&lt;/p&gt;
&lt;p&gt;```python
subdir = self._render_string(self.template.subdirectory) or &amp;#34;&amp;#34;
return self.template.local_abspath / subdir
```&lt;/p&gt;
&lt;p&gt;There is no check that the resulting path stays inside the template directory.&lt;/p&gt;
&lt;p&gt;The documentation for `_subdirectory` describes it as:&lt;/p&gt;
&lt;p&gt;&amp;gt; Subdirectory to use as the template root when generating a project.&lt;/p&gt;
&lt;p&gt;and explains it as a way to separate template metadata from template source code:&lt;/p&gt;
&lt;p&gt;&amp;lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/docs/configuring.md#L1582-L1646&amp;gt;&lt;/p&gt;
&lt;p&gt;That description fits values like `template` or `poetry`, but not `..`.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;#…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: copier&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Copier&amp;#39;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.&lt;/p&gt;
&lt;p&gt;As a result, a template can escape its own directory and make Copier render files from the parent directory without `--UNSAFE`.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The relevant code path is:&lt;/p&gt;
&lt;p&gt;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&lt;/p&gt;
&lt;p&gt;Relevant code:&lt;/p&gt;
&lt;p&gt;- &amp;lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/copier/_main.py#L1056-L1062&amp;gt;
- &amp;lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/copier/_template.py#L504-L513&amp;gt;&lt;/p&gt;
&lt;p&gt;The effective sink is:&lt;/p&gt;
&lt;p&gt;```python
subdir = self._render_string(self.template.subdirectory) or &amp;#34;&amp;#34;
return self.template.local_abspath / subdir
```&lt;/p&gt;
&lt;p&gt;There is no check that the resulting path stays inside the template directory.&lt;/p&gt;
&lt;p&gt;The documentation for `_subdirectory` describes it as:&lt;/p&gt;
&lt;p&gt;&amp;gt; Subdirectory to use as the template root when generating a project.&lt;/p&gt;
&lt;p&gt;and explains it as a way to separate template metadata from template source code:&lt;/p&gt;
&lt;p&gt;&amp;lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/docs/configuring.md#L1582-L1646&amp;gt;&lt;/p&gt;
&lt;p&gt;That description fits values like `template` or `poetry`, but not `..`.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;#…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-85v3-4m8g-hrh6</guid>
    </item>
    <item>
      <title>PYSEC-2026-2134</title>
      <link>https://db.gcve.eu/vuln/pysec-2026-2134</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: copier&lt;/p&gt;
&lt;p&gt;Copier is a library and CLI app for rendering project templates. Prior to version 9.14.1, Copier&amp;#39;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: copier&lt;/p&gt;
&lt;p&gt;Copier is a library and CLI app for rendering project templates. Prior to version 9.14.1, Copier&amp;#39;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/pysec-2026-2134</guid>
    </item>
  </channel>
</rss>
