<?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>Thu, 01 Oct 2026 21:45:48 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-80889 — can: isotp: fix timer drain order, wakeup handling and tx_gen ordering</title>
      <link>https://db.gcve.eu/vuln/cve-2026-80889</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;can: isotp: fix timer drain order, wakeup handling and tx_gen ordering&lt;/p&gt;
&lt;p&gt;This patch is a follow-up to commit cf070fe33bfb (&amp;#34;can: isotp: serialize
TX state transitions under so-&amp;gt;rx_lock&amp;#34;) which addresses following
sashiko-bot findings:&lt;/p&gt;
&lt;p&gt;- isotp_sendmsg(): drain so-&amp;gt;txfrtimer first so a stale callback can&amp;#39;t
  re-arm echotimer after the claim&lt;/p&gt;
&lt;p&gt;- isotp_release(): wake so-&amp;gt;wait after forcing ISOTP_SHUTDOWN so a
  sleeping sendmsg() claim isn&amp;#39;t stranded&lt;/p&gt;
&lt;p&gt;- isotp_sendmsg(): have both wait_event_interruptible() calls in
  isotp_sendmsg() also wake on ISOTP_SHUTDOWN and do not return claim to
  IDLE to avoid corrupting a concurrent isotp_release() process.&lt;/p&gt;
&lt;p&gt;- isotp_sendmsg(): handle potential claim of a new transfer when
  the wait_event_interruptible() call returns in CAN_ISOTP_WAIT_TX_DONE
  mode. Don&amp;#39;t touch timers and states of the new transfer if a new thread
  incremented so-&amp;gt;tx_gen before getting the lock at err_event_drop.&lt;/p&gt;
&lt;p&gt;- isotp_sendmsg(): handle a stuck can_send() and omit timer and state
  changes if a new transfer was claimed. wait_tx_done() returns the error
  recorded in so-&amp;gt;tx_result[], tagged with the caller&amp;#39;s own generation.&lt;/p&gt;
&lt;p&gt;- isotp_tx_timeout(): on a claimed timeout, record the ECOMM error for
  the timed-out transfer&amp;#39;s own generation in so-&amp;gt;tx_result[]; sk-&amp;gt;sk_err
  is raised unconditionally, same as every other error path here.&lt;/p&gt;
&lt;p&gt;- isotp_tx_gen_done()/isotp_tx_timeout(): always read tx.state (ac…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;can: isotp: fix timer drain order, wakeup handling and tx_gen ordering&lt;/p&gt;
&lt;p&gt;This patch is a follow-up to commit cf070fe33bfb (&amp;#34;can: isotp: serialize
TX state transitions under so-&amp;gt;rx_lock&amp;#34;) which addresses following
sashiko-bot findings:&lt;/p&gt;
&lt;p&gt;- isotp_sendmsg(): drain so-&amp;gt;txfrtimer first so a stale callback can&amp;#39;t
  re-arm echotimer after the claim&lt;/p&gt;
&lt;p&gt;- isotp_release(): wake so-&amp;gt;wait after forcing ISOTP_SHUTDOWN so a
  sleeping sendmsg() claim isn&amp;#39;t stranded&lt;/p&gt;
&lt;p&gt;- isotp_sendmsg(): have both wait_event_interruptible() calls in
  isotp_sendmsg() also wake on ISOTP_SHUTDOWN and do not return claim to
  IDLE to avoid corrupting a concurrent isotp_release() process.&lt;/p&gt;
&lt;p&gt;- isotp_sendmsg(): handle potential claim of a new transfer when
  the wait_event_interruptible() call returns in CAN_ISOTP_WAIT_TX_DONE
  mode. Don&amp;#39;t touch timers and states of the new transfer if a new thread
  incremented so-&amp;gt;tx_gen before getting the lock at err_event_drop.&lt;/p&gt;
&lt;p&gt;- isotp_sendmsg(): handle a stuck can_send() and omit timer and state
  changes if a new transfer was claimed. wait_tx_done() returns the error
  recorded in so-&amp;gt;tx_result[], tagged with the caller&amp;#39;s own generation.&lt;/p&gt;
&lt;p&gt;- isotp_tx_timeout(): on a claimed timeout, record the ECOMM error for
  the timed-out transfer&amp;#39;s own generation in so-&amp;gt;tx_result[]; sk-&amp;gt;sk_err
  is raised unconditionally, same as every other error path here.&lt;/p&gt;
&lt;p&gt;- isotp_tx_gen_done()/isotp_tx_timeout(): always read tx.state (ac…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-80889</guid>
    </item>
  </channel>
</rss>
