VYPR
Unrated severityNVD Advisory· Published Dec 6, 2025· Updated Apr 15, 2026

CVE-2025-40281

CVE-2025-40281

Description

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

sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto

syzbot reported a possible shift-out-of-bounds [1]

Blamed commit added rto_alpha_max and rto_beta_max set to 1000.

It is unclear if some sctp users are setting very large rto_alpha and/or rto_beta.

In order to prevent user regression, perform the test at run time.

Also add READ_ONCE() annotations as sysctl values can change under us.

[1]

UBSAN: shift-out-of-bounds in net/sctp/transport.c:509:41 shift exponent 64 is too large for 32-bit type 'unsigned int' CPU: 0 UID: 0 PID: 16704 Comm: syz.2.2320 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Call Trace:

__dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120 ubsan_epilogue lib/ubsan.c:233 [inline] __ubsan_handle_shift_out_of_bounds+0x27f/0x420 lib/ubsan.c:494 sctp_transport_update_rto.cold+0x1c/0x34b net/sctp/transport.c:509 sctp_check_transmitted+0x11c4/0x1c30 net/sctp/outqueue.c:1502 sctp_outq_sack+0x4ef/0x1b20 net/sctp/outqueue.c:1338 sctp_cmd_process_sack net/sctp/sm_sideeffect.c:840 [inline] sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1372 [inline]

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

A shift-out-of-bounds bug in the Linux kernel's SCTP stack can be triggered by large sysctl values, leading to undefined behavior.

Root

Cause

CVE-2025-40281 is a shift-out-of-bounds vulnerability in the Linux kernel's Stream Control Transmission Protocol (SCTP) implementation, specifically in the function sctp_transport_update_rto. The flaw was introduced by a prior commit that set maximum values for the sysctl parameters rto_alpha and rto_beta to 1000. When user-space configures unusually large values for these sysctl parameters, subsequent shift operations in the RTO update logic can exceed the bounds of a 32-bit unsigned integer, triggering undefined behavior as reported by the kernel's UBSAN tool. The syzbot fuzzer detected the issue with a shift exponent of 64 being too large for unsigned int [1].

Exploitation

An attacker who can modify the rto_alpha or rto_beta sysctl parameters (requires root or privileged access to the SCTP subsystem) can set them to values that cause the shift exponent to become excessively large during RTO calculation. The exploit path begins in sctp_transport_update_rto, called from sctp_check_transmitted in the outqueue processing, which is triggered upon receiving a Selective Acknowledgment (SACK) [1]. No network-based exploitation is possible without first achieving local privileged access to write sysctls.

Impact

Successful exploitation leads to undefined behavior due to the shift-out-of-bounds, which may crash the kernel (denial of service) or potentially be leveraged for other undefined consequences. The attack requires local privileged access to set the sysctl values, limiting its remote exploitability.

Mitigation

The Linux kernel community merged a fix that performs a runtime bounds check on the shift amount before executing the operation, preventing the out-of-bounds shift. The patch also adds READ_ONCE() annotations for the sysctl values, since they can change asynchronously [1]. No workarounds are documented; users should update their kernels to include the fix.

AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

2
  • Linux/Kernelinferred2 versions
    (expand)+ 1 more
    • (no CPE)
    • (no CPE)

Patches

8

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

8

News mentions

0

No linked articles in our index yet.