<?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://vulnerability.circl.lu</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>Sun, 11 Oct 2026 19:03:33 +0000</lastBuildDate>
    <item>
      <title>RUSTSEC-2026-0177 — Missing `Sync` bound on `PyCFunction::new_closure` closures</title>
      <link>https://vulnerability.circl.lu/vuln/rustsec-2026-0177</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: pyo3&lt;/p&gt;
&lt;p&gt;`PyCFunction::new_closure` (and the temporary `new_closure_bound` complement in
the 0.21–0.22 series) required the supplied closure to be `Send + &amp;#39;static` but
not `Sync`. The resulting `PyCFunction` is a Python callable that can be
invoked from any Python thread, which means the closure may be called
concurrently from multiple threads, and needs a `Sync` bound to prevent
possible data races.&lt;/p&gt;
&lt;p&gt;The problem exists under all Python versions but is particularly vulnerable under
the newer free-threaded Python variant, which do not have serial execution
imposed by the Global Interpreter Lock. Under releases protected by the GIL,
the ability to &amp;#34;detach&amp;#34; from the Python interpreter temporarily inside the closure
(e.g. by `Python::detach`) makes it possible for interleaved and/or concurrent
execution of various portions of the closure.&lt;/p&gt;
&lt;p&gt;PyO3 0.29.0 added a `Sync` bound to close this thread-safety bug.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: pyo3&lt;/p&gt;
&lt;p&gt;`PyCFunction::new_closure` (and the temporary `new_closure_bound` complement in
the 0.21–0.22 series) required the supplied closure to be `Send + &amp;#39;static` but
not `Sync`. The resulting `PyCFunction` is a Python callable that can be
invoked from any Python thread, which means the closure may be called
concurrently from multiple threads, and needs a `Sync` bound to prevent
possible data races.&lt;/p&gt;
&lt;p&gt;The problem exists under all Python versions but is particularly vulnerable under
the newer free-threaded Python variant, which do not have serial execution
imposed by the Global Interpreter Lock. Under releases protected by the GIL,
the ability to &amp;#34;detach&amp;#34; from the Python interpreter temporarily inside the closure
(e.g. by `Python::detach`) makes it possible for interleaved and/or concurrent
execution of various portions of the closure.&lt;/p&gt;
&lt;p&gt;PyO3 0.29.0 added a `Sync` bound to close this thread-safety bug.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/rustsec-2026-0177</guid>
    </item>
  </channel>
</rss>
