CVE-2026-74584: RDMA/bnxt_re: zero shared page before exposing to userspace

Published Aug 22, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

RDMA/bnxtre: zero shared page before exposing to userspace

bnxtreallocucontext() allocates uctx->shpg via getfreepage(GFPKERNEL). The buddy allocator does not zero pages without GFPZERO, so the page contains stale kernel data from whatever object most recently freed it.

The page is then mapped into userspace via vminsertpage() under BNXTREMMAPSHPAGE in bnxtremmap(). The driver only ever writes 4 bytes (a u32 AVID) at offset BNXTREAVIDOFFT (0x10) inside bnxtrecreateah(); the remaining 4092 bytes of the page are exposed to userspace unsanitised, leaking kernel memory contents.

Any user with access to /dev/infiniband/uverbsX on a host with a bnxtre device (typically rdma group membership) can read this data via a single mmap() at pgoff 0 after IBUSERVERBSCMDGETCONTEXT.

Other shared pages in the same file already use getzeroedpage() correctly:

drivers/infiniband/hw/bnxtre/ibverbs.c srq->uctxsrqpage = (void )getzeroedpage(GFPKERNEL); cq->uctxcqpage = (void )getzeroedpage(GFPKERNEL);

uctx->shpg is the only outlier. Bring it in line with the existing convention by switching to getzeroedpage().

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Linux kernel to a version that resolves this vulnerability.

    Patch RDMA/bnxt_re: zero shared page before exposing to userspace
  2. Configuration

    Change the bnxt_re shared page allocation used for uctx->shpg to use get_zeroed_page(GFP_KERNEL) so the remaining bytes are zeroed before mapping to userspace via vm_insert_page().

    drivers/infiniband/hw/bnxt_re/ib_verbs.c bnxt_re_alloc_ucontext() allocation of uctx->shpg = use get_zeroed_page(GFP_KERNEL) instead of __get_free_page(GFP_KERNEL)

Event History

Aug 22, 2026
CVE Published
via MITRE·02:28 PM
Data Sourced
via MITRE·02:28 PM
Description
Data Sourced
via NVD·03:16 PM
Description

Frequently Asked Questions

1

Who can access the leaked data?

Any local user with access to /dev/infiniband/uverbsX on a host using a bnxt_re RDMA device can access it. This access is typically granted through membership in the rdma group.

2

What actions are required to trigger the disclosure?

The user must obtain an RDMA user context with IB_USER_VERBS_CMD_GET_CONTEXT, then perform a single mmap() using page offset 0 for the BNXT_RE_MMAP_SH_PAGE mapping. Reading that mapping exposes the shared page contents.

3

What data is exposed through the mapping?

Only four bytes, the u32 AVID at offset 0x10, are written by the driver. The remaining 4092 bytes can contain stale kernel memory from a previously freed allocation.

4

How is the issue resolved in the driver?

The affected shared page allocation is changed from __get_free_page(GFP_KERNEL) to a zeroed-page allocation, matching the driver's existing shared-page allocations. Zeroing the page prevents stale kernel data from being mapped into userspace.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203