<?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 15:17:10 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-63888 — scsi: target: iscsi: Fix CRC overread and double-free in iscsit_handle_text_cmd()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-63888</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;scsi: target: iscsi: Fix CRC overread and double-free in iscsit_handle_text_cmd()&lt;/p&gt;
&lt;p&gt;Two latent bugs in the Text-phase handler, both present since the
original LIO integration in commit e48354ce078c (&amp;#34;iscsi-target: Add
iSCSI fabric support for target v4.1&amp;#34;):&lt;/p&gt;
&lt;p&gt;1) DataDigest CRC buffer overread (4 bytes past text_in).&lt;/p&gt;
&lt;p&gt;text_in is kzalloc()&amp;#39;d at ALIGN(payload_length, 4).  rx_size is then
   incremented by ISCSI_CRC_LEN to make room for the received DataDigest
   in the iovec, but the same (now-bumped) rx_size is passed as the
   buffer length to iscsit_crc_buf():&lt;/p&gt;
&lt;p&gt;if (conn-&amp;gt;conn_ops-&amp;gt;DataDigest) {
               ...
               rx_size += ISCSI_CRC_LEN;
       }
       ...
       if (conn-&amp;gt;conn_ops-&amp;gt;DataDigest) {
               data_crc = iscsit_crc_buf(text_in, rx_size, 0, NULL);&lt;/p&gt;
&lt;p&gt;iscsit_crc_buf() walks rx_size bytes of text_in with crc32c(), so
   when DataDigest is negotiated it reads 4 bytes past the end of the
   text_in allocation.  KASAN reproduces this directly on the unpatched
   mainline tree as slab-out-of-bounds in crc32c() called from the Text
   PDU path.  The OOB bytes feed crc32c() and are then compared against
   the initiator-supplied checksum, so the value does not flow back to
   the attacker, but the kernel does read past the buffer on every Text
   PDU with DataDigest=CRC32C.&lt;/p&gt;
&lt;p&gt;Fix by passing the actual padded payload length
   (ALIGN(payload_length, 4)) that was used for…&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;scsi: target: iscsi: Fix CRC overread and double-free in iscsit_handle_text_cmd()&lt;/p&gt;
&lt;p&gt;Two latent bugs in the Text-phase handler, both present since the
original LIO integration in commit e48354ce078c (&amp;#34;iscsi-target: Add
iSCSI fabric support for target v4.1&amp;#34;):&lt;/p&gt;
&lt;p&gt;1) DataDigest CRC buffer overread (4 bytes past text_in).&lt;/p&gt;
&lt;p&gt;text_in is kzalloc()&amp;#39;d at ALIGN(payload_length, 4).  rx_size is then
   incremented by ISCSI_CRC_LEN to make room for the received DataDigest
   in the iovec, but the same (now-bumped) rx_size is passed as the
   buffer length to iscsit_crc_buf():&lt;/p&gt;
&lt;p&gt;if (conn-&amp;gt;conn_ops-&amp;gt;DataDigest) {
               ...
               rx_size += ISCSI_CRC_LEN;
       }
       ...
       if (conn-&amp;gt;conn_ops-&amp;gt;DataDigest) {
               data_crc = iscsit_crc_buf(text_in, rx_size, 0, NULL);&lt;/p&gt;
&lt;p&gt;iscsit_crc_buf() walks rx_size bytes of text_in with crc32c(), so
   when DataDigest is negotiated it reads 4 bytes past the end of the
   text_in allocation.  KASAN reproduces this directly on the unpatched
   mainline tree as slab-out-of-bounds in crc32c() called from the Text
   PDU path.  The OOB bytes feed crc32c() and are then compared against
   the initiator-supplied checksum, so the value does not flow back to
   the attacker, but the kernel does read past the buffer on every Text
   PDU with DataDigest=CRC32C.&lt;/p&gt;
&lt;p&gt;Fix by passing the actual padded payload length
   (ALIGN(payload_length, 4)) that was used for…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-63888</guid>
    </item>
  </channel>
</rss>
