<?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>Tue, 29 Sep 2026 06:20:28 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-64047 — net: tls: fix off-by-one in sg_chain entry count for wrapped sk_msg ring</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-64047</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;net: tls: fix off-by-one in sg_chain entry count for wrapped sk_msg ring&lt;/p&gt;
&lt;p&gt;When an sk_msg scatterlist ring wraps (sg.end &amp;lt; sg.start),
tls_push_record() chains the tail portion of the ring to the head
using sg_chain(). An extra entry in the sg array is reserved for
this:&lt;/p&gt;
&lt;p&gt;struct sk_msg_sg {
        [...]
        /* The extra two elements:
         * 1) used for chaining the front and sections when the list becomes
         *    partitioned (e.g. end &amp;lt; start). The crypto APIs require the
         *    chaining;
         * 2) to chain tailer SG entries after the message.
         */
        struct scatterlist              data[MAX_MSG_FRAGS + 2];&lt;/p&gt;
&lt;p&gt;The current code uses MAX_SKB_FRAGS + 1 as the ring size:&lt;/p&gt;
&lt;p&gt;sg_chain(&amp;amp;msg_pl-&amp;gt;sg.data[msg_pl-&amp;gt;sg.start],
             MAX_SKB_FRAGS - msg_pl-&amp;gt;sg.start + 1,
             msg_pl-&amp;gt;sg.data);&lt;/p&gt;
&lt;p&gt;This places the chain pointer at&lt;/p&gt;
&lt;p&gt;sg_chain(data[start], (MAX_SKB_FRAGS - msg_start + 1) .. =
  &amp;amp;data[start] + (MAX_SKB_FRAGS - msg_start + 1) - 1 =
  data[start + (MAX_SKB_FRAGS - start + 1) - 1] =
  data[MAX_SKB_FRAGS]&lt;/p&gt;
&lt;p&gt;instead of the true last entry. This is likely due to a &amp;#34;race&amp;#34; of
the commit under Fixes landing close to
commit 031097d9e079 (&amp;#34;bpf: sk_msg, zap ingress queue on psock down&amp;#34;)&lt;/p&gt;
&lt;p&gt;Convert to ARRAY_SIZE and drop the data[start] / - start (as suggested
by Sabrina).&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;net: tls: fix off-by-one in sg_chain entry count for wrapped sk_msg ring&lt;/p&gt;
&lt;p&gt;When an sk_msg scatterlist ring wraps (sg.end &amp;lt; sg.start),
tls_push_record() chains the tail portion of the ring to the head
using sg_chain(). An extra entry in the sg array is reserved for
this:&lt;/p&gt;
&lt;p&gt;struct sk_msg_sg {
        [...]
        /* The extra two elements:
         * 1) used for chaining the front and sections when the list becomes
         *    partitioned (e.g. end &amp;lt; start). The crypto APIs require the
         *    chaining;
         * 2) to chain tailer SG entries after the message.
         */
        struct scatterlist              data[MAX_MSG_FRAGS + 2];&lt;/p&gt;
&lt;p&gt;The current code uses MAX_SKB_FRAGS + 1 as the ring size:&lt;/p&gt;
&lt;p&gt;sg_chain(&amp;amp;msg_pl-&amp;gt;sg.data[msg_pl-&amp;gt;sg.start],
             MAX_SKB_FRAGS - msg_pl-&amp;gt;sg.start + 1,
             msg_pl-&amp;gt;sg.data);&lt;/p&gt;
&lt;p&gt;This places the chain pointer at&lt;/p&gt;
&lt;p&gt;sg_chain(data[start], (MAX_SKB_FRAGS - msg_start + 1) .. =
  &amp;amp;data[start] + (MAX_SKB_FRAGS - msg_start + 1) - 1 =
  data[start + (MAX_SKB_FRAGS - start + 1) - 1] =
  data[MAX_SKB_FRAGS]&lt;/p&gt;
&lt;p&gt;instead of the true last entry. This is likely due to a &amp;#34;race&amp;#34; of
the commit under Fixes landing close to
commit 031097d9e079 (&amp;#34;bpf: sk_msg, zap ingress queue on psock down&amp;#34;)&lt;/p&gt;
&lt;p&gt;Convert to ARRAY_SIZE and drop the data[start] / - start (as suggested
by Sabrina).&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-64047</guid>
    </item>
  </channel>
</rss>
