<?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>Mon, 28 Sep 2026 08:13:43 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-90414 — IB/isert: reject PDUs declaring more data than was received</title>
      <link>https://db.gcve.eu/vuln/cve-2026-90414</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;IB/isert: reject PDUs declaring more data than was received&lt;/p&gt;
&lt;p&gt;isert_recv_done() hands each received PDU to the opcode handlers without
ever looking at wc-&amp;gt;byte_len, the number of bytes the HCA actually placed
in the receive descriptor. The handlers then copy that many bytes - the
data-segment length the initiator declared in the BHS
(ntoh24(hdr-&amp;gt;dlength), via the derived unsol_data_len / imm_data_len) -
out of the fixed-size descriptor:&lt;/p&gt;
&lt;p&gt;isert_handle_iscsi_dataout():
        sg_copy_from_buffer(sg_start, sg_nents, isert_get_data(rx_desc),
                            unsol_data_len);
  isert_handle_scsi_cmd():
        sg_copy_from_buffer(cmd-&amp;gt;se_cmd.t_data_sg, sg_nents,
                            isert_get_data(rx_desc), imm_data_len);&lt;/p&gt;
&lt;p&gt;Because the declared length is never checked against wc-&amp;gt;byte_len, an
initiator can declare a data segment larger than the bytes it actually
sent (and larger than the descriptor) and cause an out-of-bounds read of
the receive buffer.&lt;/p&gt;
&lt;p&gt;Nothing upstream of isert closes this door:&lt;/p&gt;
&lt;p&gt;- __iscsit_check_dataout_hdr() bounds the inbound payload against
    conn_ops-&amp;gt;MaxXmitDataSegmentLength (MXDSL) - a transmit parameter,
    used here for the inbound check.
  - iscsi_set_connection_parameters() sets
    ops-&amp;gt;MaxXmitDataSegmentLength = ops-&amp;gt;TargetRecvDataSegmentLength;
    and TARGETRECVDATASEGMENTLENGTH is absent from the min()-clamp list in
    iscsi_check_acceptor_state(), so t…&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;IB/isert: reject PDUs declaring more data than was received&lt;/p&gt;
&lt;p&gt;isert_recv_done() hands each received PDU to the opcode handlers without
ever looking at wc-&amp;gt;byte_len, the number of bytes the HCA actually placed
in the receive descriptor. The handlers then copy that many bytes - the
data-segment length the initiator declared in the BHS
(ntoh24(hdr-&amp;gt;dlength), via the derived unsol_data_len / imm_data_len) -
out of the fixed-size descriptor:&lt;/p&gt;
&lt;p&gt;isert_handle_iscsi_dataout():
        sg_copy_from_buffer(sg_start, sg_nents, isert_get_data(rx_desc),
                            unsol_data_len);
  isert_handle_scsi_cmd():
        sg_copy_from_buffer(cmd-&amp;gt;se_cmd.t_data_sg, sg_nents,
                            isert_get_data(rx_desc), imm_data_len);&lt;/p&gt;
&lt;p&gt;Because the declared length is never checked against wc-&amp;gt;byte_len, an
initiator can declare a data segment larger than the bytes it actually
sent (and larger than the descriptor) and cause an out-of-bounds read of
the receive buffer.&lt;/p&gt;
&lt;p&gt;Nothing upstream of isert closes this door:&lt;/p&gt;
&lt;p&gt;- __iscsit_check_dataout_hdr() bounds the inbound payload against
    conn_ops-&amp;gt;MaxXmitDataSegmentLength (MXDSL) - a transmit parameter,
    used here for the inbound check.
  - iscsi_set_connection_parameters() sets
    ops-&amp;gt;MaxXmitDataSegmentLength = ops-&amp;gt;TargetRecvDataSegmentLength;
    and TARGETRECVDATASEGMENTLENGTH is absent from the min()-clamp list in
    iscsi_check_acceptor_state(), so t…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-90414</guid>
    </item>
  </channel>
</rss>
