<?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 06:47:57 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-55201 — Copier safe template has arbitrary filesystem read/write access</title>
      <link>https://db.gcve.eu/vuln/cve-2025-55201</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; copier-org copier&lt;/p&gt;
&lt;p&gt;Copier library and CLI app for rendering project templates. Prior to 9.9.1, a safe template can currently read and write arbitrary files because Copier exposes a few pathlib.Path objects in the Jinja context which have unconstrained I/O methods. This effectively renders the security model w.r.t. filesystem access useless. This vulnerability is fixed in 9.9.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 library and CLI app for rendering project templates. Prior to 9.9.1, a safe template can currently read and write arbitrary files because Copier exposes a few pathlib.Path objects in the Jinja context which have unconstrained I/O methods. This effectively renders the security model w.r.t. filesystem access useless. This vulnerability is fixed in 9.9.1.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2025-55201</guid>
    </item>
    <item>
      <title>GHSA-3xw7-v6cj-5q8h — Copier's safe template has arbitrary filesystem read/write access</title>
      <link>https://db.gcve.eu/vuln/ghsa-3xw7-v6cj-5q8h</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: copier&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Copier&amp;#39;s current security model shall restrict filesystem access through Jinja:&lt;/p&gt;
&lt;p&gt;- Files can only be read using `{% include ... %}`, which is limited by Jinja to reading files from the subtree of the local template clone in our case.
- Files are written in the destination directory according to their counterparts in the template.&lt;/p&gt;
&lt;p&gt;Copier suggests that it&amp;#39;s safe to generate a project from a safe template, i.e. one that doesn&amp;#39;t use [unsafe](https://copier.readthedocs.io/en/stable/configuring/#unsafe) features like custom Jinja extensions which would require passing the `--UNSAFE,--trust` flag. As it turns out, a safe template can currently read and write arbitrary files because we expose a few `pathlib.Path` objects in the Jinja context which have unconstrained I/O methods. This effectively renders our security model w.r.t. filesystem access useless.&lt;/p&gt;
&lt;p&gt;#### Arbitrary read access&lt;/p&gt;
&lt;p&gt;Imagine, e.g., a malicious template author who creates a template that reads SSH keys or other secrets from well-known locations, perhaps &amp;#34;masks&amp;#34; them with Base64 encoding to reduce detection risk, and hopes for a user to push the generated project to a public location like [github.com](http://github.com/) where the template author can extract the secrets.&lt;/p&gt;
&lt;p&gt;Reproducible example:&lt;/p&gt;
&lt;p&gt;- Read known file:&lt;/p&gt;
&lt;p&gt;```shell
    echo &amp;#34;s3cr3t&amp;#34; &amp;gt; secret.txt
    mkdir src/
    echo &amp;#34;stolen secret: {{ (_copier_conf.dst_path / &amp;#39;..&amp;#39; / &amp;#39;secret.txt&amp;#39;).resolve().read_text(&amp;#39;utf-8&amp;#39;) }}&amp;#34; &amp;gt; src/stolen-secret.txt.jinj…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: copier&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Copier&amp;#39;s current security model shall restrict filesystem access through Jinja:&lt;/p&gt;
&lt;p&gt;- Files can only be read using `{% include ... %}`, which is limited by Jinja to reading files from the subtree of the local template clone in our case.
- Files are written in the destination directory according to their counterparts in the template.&lt;/p&gt;
&lt;p&gt;Copier suggests that it&amp;#39;s safe to generate a project from a safe template, i.e. one that doesn&amp;#39;t use [unsafe](https://copier.readthedocs.io/en/stable/configuring/#unsafe) features like custom Jinja extensions which would require passing the `--UNSAFE,--trust` flag. As it turns out, a safe template can currently read and write arbitrary files because we expose a few `pathlib.Path` objects in the Jinja context which have unconstrained I/O methods. This effectively renders our security model w.r.t. filesystem access useless.&lt;/p&gt;
&lt;p&gt;#### Arbitrary read access&lt;/p&gt;
&lt;p&gt;Imagine, e.g., a malicious template author who creates a template that reads SSH keys or other secrets from well-known locations, perhaps &amp;#34;masks&amp;#34; them with Base64 encoding to reduce detection risk, and hopes for a user to push the generated project to a public location like [github.com](http://github.com/) where the template author can extract the secrets.&lt;/p&gt;
&lt;p&gt;Reproducible example:&lt;/p&gt;
&lt;p&gt;- Read known file:&lt;/p&gt;
&lt;p&gt;```shell
    echo &amp;#34;s3cr3t&amp;#34; &amp;gt; secret.txt
    mkdir src/
    echo &amp;#34;stolen secret: {{ (_copier_conf.dst_path / &amp;#39;..&amp;#39; / &amp;#39;secret.txt&amp;#39;).resolve().read_text(&amp;#39;utf-8&amp;#39;) }}&amp;#34; &amp;gt; src/stolen-secret.txt.jinj…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-3xw7-v6cj-5q8h</guid>
    </item>
    <item>
      <title>PYSEC-2026-1271 — Copier's safe template has arbitrary filesystem read/write access</title>
      <link>https://db.gcve.eu/vuln/pysec-2026-1271</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: copier&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Copier&amp;#39;s current security model shall restrict filesystem access through Jinja:&lt;/p&gt;
&lt;p&gt;- Files can only be read using `{% include ... %}`, which is limited by Jinja to reading files from the subtree of the local template clone in our case.
- Files are written in the destination directory according to their counterparts in the template.&lt;/p&gt;
&lt;p&gt;Copier suggests that it&amp;#39;s safe to generate a project from a safe template, i.e. one that doesn&amp;#39;t use [unsafe](https://copier.readthedocs.io/en/stable/configuring/#unsafe) features like custom Jinja extensions which would require passing the `--UNSAFE,--trust` flag. As it turns out, a safe template can currently read and write arbitrary files because we expose a few `pathlib.Path` objects in the Jinja context which have unconstrained I/O methods. This effectively renders our security model w.r.t. filesystem access useless.&lt;/p&gt;
&lt;p&gt;#### Arbitrary read access&lt;/p&gt;
&lt;p&gt;Imagine, e.g., a malicious template author who creates a template that reads SSH keys or other secrets from well-known locations, perhaps &amp;#34;masks&amp;#34; them with Base64 encoding to reduce detection risk, and hopes for a user to push the generated project to a public location like [github.com](http://github.com/) where the template author can extract the secrets.&lt;/p&gt;
&lt;p&gt;Reproducible example:&lt;/p&gt;
&lt;p&gt;- Read known file:&lt;/p&gt;
&lt;p&gt;```shell
    echo &amp;#34;s3cr3t&amp;#34; &amp;gt; secret.txt
    mkdir src/
    echo &amp;#34;stolen secret: {{ (_copier_conf.dst_path / &amp;#39;..&amp;#39; / &amp;#39;secret.txt&amp;#39;).resolve().read_text(&amp;#39;utf-8&amp;#39;) }}&amp;#34; &amp;gt; src/stolen-secret.txt.jinj…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: copier&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Copier&amp;#39;s current security model shall restrict filesystem access through Jinja:&lt;/p&gt;
&lt;p&gt;- Files can only be read using `{% include ... %}`, which is limited by Jinja to reading files from the subtree of the local template clone in our case.
- Files are written in the destination directory according to their counterparts in the template.&lt;/p&gt;
&lt;p&gt;Copier suggests that it&amp;#39;s safe to generate a project from a safe template, i.e. one that doesn&amp;#39;t use [unsafe](https://copier.readthedocs.io/en/stable/configuring/#unsafe) features like custom Jinja extensions which would require passing the `--UNSAFE,--trust` flag. As it turns out, a safe template can currently read and write arbitrary files because we expose a few `pathlib.Path` objects in the Jinja context which have unconstrained I/O methods. This effectively renders our security model w.r.t. filesystem access useless.&lt;/p&gt;
&lt;p&gt;#### Arbitrary read access&lt;/p&gt;
&lt;p&gt;Imagine, e.g., a malicious template author who creates a template that reads SSH keys or other secrets from well-known locations, perhaps &amp;#34;masks&amp;#34; them with Base64 encoding to reduce detection risk, and hopes for a user to push the generated project to a public location like [github.com](http://github.com/) where the template author can extract the secrets.&lt;/p&gt;
&lt;p&gt;Reproducible example:&lt;/p&gt;
&lt;p&gt;- Read known file:&lt;/p&gt;
&lt;p&gt;```shell
    echo &amp;#34;s3cr3t&amp;#34; &amp;gt; secret.txt
    mkdir src/
    echo &amp;#34;stolen secret: {{ (_copier_conf.dst_path / &amp;#39;..&amp;#39; / &amp;#39;secret.txt&amp;#39;).resolve().read_text(&amp;#39;utf-8&amp;#39;) }}&amp;#34; &amp;gt; src/stolen-secret.txt.jinj…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/pysec-2026-1271</guid>
    </item>
  </channel>
</rss>
