<?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>Sat, 03 Oct 2026 11:56:28 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-46133 — RDMA/rxe: Reject unknown opcodes before ICRC processing</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-46133</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;RDMA/rxe: Reject unknown opcodes before ICRC processing&lt;/p&gt;
&lt;p&gt;Even after applying commit 7244491dab34 (&amp;#34;RDMA/rxe: Validate pad and ICRC
before payload_size() in rxe_rcv&amp;#34;), a single unauthenticated UDP packet
can still trigger panic.  That patch handled payload_size() underflow only
for valid opcodes with short packets, not for packets carrying an unknown
opcode.  The unknown-opcode OOB read described below predates that commit
and reaches back to the initial Soft RoCE driver.&lt;/p&gt;
&lt;p&gt;The check added there reads&lt;/p&gt;
&lt;p&gt;pkt-&amp;gt;paylen &amp;lt; header_size(pkt) + bth_pad(pkt) + RXE_ICRC_SIZE&lt;/p&gt;
&lt;p&gt;where header_size(pkt) expands to rxe_opcode[pkt-&amp;gt;opcode].length.  The
rxe_opcode[] array has 256 entries but is only populated for defined IB
opcodes; any other entry (for example opcode 0xff) is zero-initialized, so
length == 0 and the check degenerates to&lt;/p&gt;
&lt;p&gt;pkt-&amp;gt;paylen &amp;lt; 0 + bth_pad(pkt) + RXE_ICRC_SIZE&lt;/p&gt;
&lt;p&gt;which does not constrain pkt-&amp;gt;paylen enough.  rxe_icrc_hdr() then computes&lt;/p&gt;
&lt;p&gt;rxe_opcode[pkt-&amp;gt;opcode].length - RXE_BTH_BYTES&lt;/p&gt;
&lt;p&gt;which underflows when length == 0 and passes a huge value to rxe_crc32(),
causing an out-of-bounds read of the skb payload.&lt;/p&gt;
&lt;p&gt;Reproduced on v7.0-rc7 with that fix applied, QEMU/KVM with
CONFIG_RDMA_RXE=y and CONFIG_KASAN=y, after&lt;/p&gt;
&lt;p&gt;rdma link add rxe0 type rxe netdev eth0&lt;/p&gt;
&lt;p&gt;A single 48-byte UDP packet to port 4791 with BTH opcode=0xff and
QPN=IB_MULTICAST_QPN triggers:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-out-of-bounds in crc32_…&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;RDMA/rxe: Reject unknown opcodes before ICRC processing&lt;/p&gt;
&lt;p&gt;Even after applying commit 7244491dab34 (&amp;#34;RDMA/rxe: Validate pad and ICRC
before payload_size() in rxe_rcv&amp;#34;), a single unauthenticated UDP packet
can still trigger panic.  That patch handled payload_size() underflow only
for valid opcodes with short packets, not for packets carrying an unknown
opcode.  The unknown-opcode OOB read described below predates that commit
and reaches back to the initial Soft RoCE driver.&lt;/p&gt;
&lt;p&gt;The check added there reads&lt;/p&gt;
&lt;p&gt;pkt-&amp;gt;paylen &amp;lt; header_size(pkt) + bth_pad(pkt) + RXE_ICRC_SIZE&lt;/p&gt;
&lt;p&gt;where header_size(pkt) expands to rxe_opcode[pkt-&amp;gt;opcode].length.  The
rxe_opcode[] array has 256 entries but is only populated for defined IB
opcodes; any other entry (for example opcode 0xff) is zero-initialized, so
length == 0 and the check degenerates to&lt;/p&gt;
&lt;p&gt;pkt-&amp;gt;paylen &amp;lt; 0 + bth_pad(pkt) + RXE_ICRC_SIZE&lt;/p&gt;
&lt;p&gt;which does not constrain pkt-&amp;gt;paylen enough.  rxe_icrc_hdr() then computes&lt;/p&gt;
&lt;p&gt;rxe_opcode[pkt-&amp;gt;opcode].length - RXE_BTH_BYTES&lt;/p&gt;
&lt;p&gt;which underflows when length == 0 and passes a huge value to rxe_crc32(),
causing an out-of-bounds read of the skb payload.&lt;/p&gt;
&lt;p&gt;Reproduced on v7.0-rc7 with that fix applied, QEMU/KVM with
CONFIG_RDMA_RXE=y and CONFIG_KASAN=y, after&lt;/p&gt;
&lt;p&gt;rdma link add rxe0 type rxe netdev eth0&lt;/p&gt;
&lt;p&gt;A single 48-byte UDP packet to port 4791 with BTH opcode=0xff and
QPN=IB_MULTICAST_QPN triggers:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-out-of-bounds in crc32_…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-46133</guid>
    </item>
  </channel>
</rss>
