<?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>Fri, 02 Oct 2026 23:41:08 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-34730 — Copier `_external_data` allows path traversal and absolute-path local file read without unsafe mode</title>
      <link>https://db.gcve.eu/vuln/cve-2026-34730</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 _external_data feature allows a template to load YAML files using template-controlled paths. If untrusted templates are in scope, a malicious template can read attacker-chosen YAML-parseable local files that are accessible to the user running Copier and expose their contents in rendered output. 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 _external_data feature allows a template to load YAML files using template-controlled paths. If untrusted templates are in scope, a malicious template can read attacker-chosen YAML-parseable local files that are accessible to the user running Copier and expose their contents in rendered output. 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-34730</guid>
    </item>
    <item>
      <title>GHSA-hgjq-p8cr-gg4h — Copier `_external_data` allows path traversal and absolute-path local file read without unsafe mode</title>
      <link>https://db.gcve.eu/vuln/ghsa-hgjq-p8cr-gg4h</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 `_external_data` feature allows a template to load YAML files using template-controlled paths. The documentation describes these values as relative paths from the subproject destination, so relative paths themselves appear to be part of the intended feature model.&lt;/p&gt;
&lt;p&gt;However, the current implementation also allows destination-external reads, including:&lt;/p&gt;
&lt;p&gt;- Parent-directory paths such as `../secret.yml`
- Absolute paths such as `/tmp/secret.yml`&lt;/p&gt;
&lt;p&gt;and then exposes the parsed contents in rendered output.&lt;/p&gt;
&lt;p&gt;This is possible without `--UNSAFE`, which makes the behavior potentially dangerous when Copier is run against untrusted templates. I am not certain this is unintended behavior, but it is security-sensitive and appears important to clarify.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The relevant flow is:&lt;/p&gt;
&lt;p&gt;1. A template defines `_external_data`
2. Copier renders the configured path string
3. Copier calls `load_answersfile_data(dst_path, rendered_path, warn_on_missing=True)`
4. `load_answersfile_data()` opens `Path(dst_path, answers_file)` directly
5. Parsed YAML becomes available as `_external_data.&amp;lt;name&amp;gt;` during rendering&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#L329-L332&amp;gt;
- &amp;lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/copier/_user_data.py#L584-L592&amp;gt;&lt;/p&gt;
&lt;p&gt;The sink is:&lt;/p&gt;
&lt;p&gt;```python
with Path(dst_path, answers_file).open(&amp;#34;rb&amp;#34;) as fd:
    return yaml.safe_load(fd)
```&lt;/p&gt;
&lt;p&gt;There is no…&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 `_external_data` feature allows a template to load YAML files using template-controlled paths. The documentation describes these values as relative paths from the subproject destination, so relative paths themselves appear to be part of the intended feature model.&lt;/p&gt;
&lt;p&gt;However, the current implementation also allows destination-external reads, including:&lt;/p&gt;
&lt;p&gt;- Parent-directory paths such as `../secret.yml`
- Absolute paths such as `/tmp/secret.yml`&lt;/p&gt;
&lt;p&gt;and then exposes the parsed contents in rendered output.&lt;/p&gt;
&lt;p&gt;This is possible without `--UNSAFE`, which makes the behavior potentially dangerous when Copier is run against untrusted templates. I am not certain this is unintended behavior, but it is security-sensitive and appears important to clarify.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The relevant flow is:&lt;/p&gt;
&lt;p&gt;1. A template defines `_external_data`
2. Copier renders the configured path string
3. Copier calls `load_answersfile_data(dst_path, rendered_path, warn_on_missing=True)`
4. `load_answersfile_data()` opens `Path(dst_path, answers_file)` directly
5. Parsed YAML becomes available as `_external_data.&amp;lt;name&amp;gt;` during rendering&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#L329-L332&amp;gt;
- &amp;lt;https://github.com/copier-org/copier/blob/7aa7021bd73797c982492bac3535515d4484fdb7/copier/_user_data.py#L584-L592&amp;gt;&lt;/p&gt;
&lt;p&gt;The sink is:&lt;/p&gt;
&lt;p&gt;```python
with Path(dst_path, answers_file).open(&amp;#34;rb&amp;#34;) as fd:
    return yaml.safe_load(fd)
```&lt;/p&gt;
&lt;p&gt;There is no…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-hgjq-p8cr-gg4h</guid>
    </item>
    <item>
      <title>PYSEC-2026-2135</title>
      <link>https://db.gcve.eu/vuln/pysec-2026-2135</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 _external_data feature allows a template to load YAML files using template-controlled paths. If untrusted templates are in scope, a malicious template can read attacker-chosen YAML-parseable local files that are accessible to the user running Copier and expose their contents in rendered output. 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 _external_data feature allows a template to load YAML files using template-controlled paths. If untrusted templates are in scope, a malicious template can read attacker-chosen YAML-parseable local files that are accessible to the user running Copier and expose their contents in rendered output. 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-2135</guid>
    </item>
  </channel>
</rss>
