<?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://cve.radiocsirt.org</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>Wed, 14 Oct 2026 22:21:08 +0000</lastBuildDate>
    <item>
      <title>RUSTSEC-2024-0021 — Parts of Report are dropped as the wrong type during downcast</title>
      <link>https://cve.radiocsirt.org/vuln/rustsec-2024-0021</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: eyre&lt;/p&gt;
&lt;p&gt;In affected versions, after a `Report` is constructed using `wrap_err` or
`wrap_err_with` to attach a message of type `D` onto an error of type `E`, then
using `downcast` to recover ownership of either the value of type `D` or the
value of type `E`, one of two things can go wrong:&lt;/p&gt;
&lt;p&gt;- If downcasting to `E`, there remains a value of type `D` to be dropped. It is
  incorrectly &amp;#34;dropped&amp;#34; by running `E`&amp;#39;s drop behavior, rather than `D`&amp;#39;s. For
  example if `D` is `&amp;amp;str` and `E` is `std::io::Error`, there would be a call of
  `std::io::Error::drop` in which the reference received by the `Drop` impl does
  not refer to a valid value of type `std::io::Error`, but instead to `&amp;amp;str`.&lt;/p&gt;
&lt;p&gt;- If downcasting to `D`, there remains a value of type `E` to be dropped. When
  `D` and `E` do not happen to be the same size, `E`&amp;#39;s drop behavior is
  incorrectly executed in the wrong location. The reference received by the
  `Drop` impl may point left or right of the real `E` value that is meant to be
  getting dropped.&lt;/p&gt;
&lt;p&gt;In both cases, when the `Report` contains an error `E` that has nontrivial drop
behavior, the most likely outcome is memory corruption.&lt;/p&gt;
&lt;p&gt;When the `Report` contains an error `E` that has trivial drop behavior (for
example a `Utf8Error`) but where `D` has nontrivial drop behavior (such as
`String`), the most likely outcome is that downcasting to `E` would leak `D`.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: eyre&lt;/p&gt;
&lt;p&gt;In affected versions, after a `Report` is constructed using `wrap_err` or
`wrap_err_with` to attach a message of type `D` onto an error of type `E`, then
using `downcast` to recover ownership of either the value of type `D` or the
value of type `E`, one of two things can go wrong:&lt;/p&gt;
&lt;p&gt;- If downcasting to `E`, there remains a value of type `D` to be dropped. It is
  incorrectly &amp;#34;dropped&amp;#34; by running `E`&amp;#39;s drop behavior, rather than `D`&amp;#39;s. For
  example if `D` is `&amp;amp;str` and `E` is `std::io::Error`, there would be a call of
  `std::io::Error::drop` in which the reference received by the `Drop` impl does
  not refer to a valid value of type `std::io::Error`, but instead to `&amp;amp;str`.&lt;/p&gt;
&lt;p&gt;- If downcasting to `D`, there remains a value of type `E` to be dropped. When
  `D` and `E` do not happen to be the same size, `E`&amp;#39;s drop behavior is
  incorrectly executed in the wrong location. The reference received by the
  `Drop` impl may point left or right of the real `E` value that is meant to be
  getting dropped.&lt;/p&gt;
&lt;p&gt;In both cases, when the `Report` contains an error `E` that has nontrivial drop
behavior, the most likely outcome is memory corruption.&lt;/p&gt;
&lt;p&gt;When the `Report` contains an error `E` that has trivial drop behavior (for
example a `Utf8Error`) but where `D` has nontrivial drop behavior (such as
`String`), the most likely outcome is that downcasting to `E` would leak `D`.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/rustsec-2024-0021</guid>
    </item>
  </channel>
</rss>
