CVE-2026-98801: net: restrict SO_RESERVE_MEM to TCP sockets and cap max value

Published Oct 18, 2026
·
Updated

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

net: restrict SORESERVEMEM to TCP sockets and cap max value

Commit 2bb2f5fb21b0 ("net: add new socket option SORESERVEMEM") and commit d00c8ee31729 ("net: fix possible NULL deref in sockreservememory") only checked skhasaccount(sk), which is true for both TCP and UDP sockets.

However, SORESERVEMEM and skunusedreservedmem() are currently only supported by TCP: - On UDP sockets, sk->skforwardalloc is protected by sk->skreceivequeue.lock, whereas sockreservememory() and sockreleasereservedmemory() only acquire locksock(sk). Concurrent UDP packet reception/release and setsockopt(SORESERVEMEM) corrupt skforwardalloc and memcg accounting. - udprmemrelease() reclaims excess skforwardalloc without accounting for skunusedreservedmem(sk).

Restrict sockreservememory() to TCP sockets (skistcp(sk)) for now. Supporting SORESERVEMEM for UDP (acquiring skreceivequeue.lock and honoring skunusedreservedmem() in udprmemrelease()) can be done in a future net-next series if needed.

In addition, reject val > SZ1G with -EINVAL in sksetsockopt(SORESERVEMEM). Without an upper bound, values near INTMAX cause skmempages(delta) and (pages << PAGESHIFT) to overflow 32-bit signed int, corrupting sk->skforwardalloc and sk->skreservedmem. Using a page-aligned cap (SZ1G) ensures that the page-rounded sk->skreservedmem reported by getsockopt(SORESERVEMEM) can always be passed back to setsockopt(SORESERVEMEM).

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Restrict sock_reserve_memory() and SO_RESERVE_MEM to TCP sockets (sk_is_tcp(sk)), and reject SO_RESERVE_MEM values above SZ_1G with -EINVAL.

    Linux kernel SO_RESERVE_MEM sock_reserve_memory() socket restriction and maximum value = TCP sockets only; reject values greater than SZ_1G with -EINVAL

Event History

Oct 18, 2026
CVE Published
via MITRE·03:48 PM
Data Sourced
via MITRE·03:48 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Frequently Asked Questions

1

Which socket types are exposed to the accounting corruption?

UDP sockets are exposed when SO_RESERVE_MEM is used. The option and its reserved-memory handling are currently supported only for TCP, but the prior checks allowed UDP sockets to use it.

2

What is required to trigger the issue?

An attacker or local process needs to set SO_RESERVE_MEM on a UDP socket while UDP packet reception or release occurs concurrently. This can corrupt sk_forward_alloc and memory-cgroup accounting.

3

Are oversized SO_RESERVE_MEM values also addressed?

Yes. The fix rejects SO_RESERVE_MEM values greater than SZ_1G with -EINVAL; the provided information does not specify the impact of unbounded values beyond stating that an upper bound was missing.

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