CVE-2026-74622: net: atlantic: free RX pages of consumed but not refilled buffers

Published Aug 22, 2026
·
Updated

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

net: atlantic: free RX pages of consumed but not refilled buffers

aqringrxdeinit() only walks [swhead, swtail), the region posted to hardware. Since the page reuse strategy was added, a cleaned RX buffer keeps its page (and its DMA mapping) in the ring for reuse, and refill is batched: aqringrxfill() returns early until AQCFGRXREFILLTHRES slots are free. Slots that were consumed but not yet reposted therefore sit in the complementary [swtail, swhead) gap with a live page, and the deinit walk never visits them: up to a refill batch worth of pages and DMA mappings leak on every interface down.

Walk the whole ring instead and release whatever is still there. Also bail out if the buffer ring is already gone: a partial aqptpringalloc() failure frees the ring but leaves aqnic set, so aqptpringdeinit() still gets here on the unwind path.

Affected Software

1 affected component
Linux Linux kernel

Event History

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

Frequently Asked Questions

1

Which systems are exposed to the resource leak?

Systems using the Linux kernel Atlantic network driver are exposed when RX buffers are consumed but not yet reposted at interface teardown. The issue can leak up to a refill batch of RX pages and DMA mappings each time the affected interface is brought down.

2

Does exploitation require an external attacker?

The provided information describes a lifecycle cleanup flaw during interface shutdown rather than an attacker-controlled code-execution path. It does not specify any remote or local attacker prerequisites.

3

What happens if the driver is repeatedly brought down before the fix is applied?

Each interface-down event can leak pages and DMA mappings for consumed RX buffers that have not yet been refilled. Repeated interface cycling can therefore accumulate unreleased resources.

4

Is there an additional failure-path condition addressed by the fix?

Yes. The fix also handles a partial aq_ptp_ring_alloc() failure, where the buffer ring has already been freed but aq_nic remains set and aq_ptp_ring_deinit() is invoked during unwind.

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