mptcp: Correctly set DATA_FIN timeout when number of retransmits is large
Published Aug 22, 2024
5.5
MEDIUMCVSS 3.1
EPSS 0.21%
Description
Syzkaller with UBSAN uncovered a scenario where a large number of DATA_FIN retransmits caused a shift-out-of-bounds in the DATA_FIN timeout calculation:
================================================================================ UBSAN: shift-out-of-bounds in net/mptcp/protocol.c:470:29 shift exponent 32 is too large for 32-bit type 'unsigned int' CPU: 1 PID: 13059 Comm: kworker/1:0 Not tainted 5.17.0-rc2-00630-g5fbf21c90c60 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 Workqueue: events mptcp_worker Call Trace: <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 ubsan_epilogue+0xb/0x5a lib/ubsan.c:151 __ubsan_handle_shift_out_of_bounds.cold+0xb2/0x20e lib/ubsan.c:330 mptcp_set_datafin_timeout net/mptcp/protocol.c:470 [inline] __mptcp_retrans.cold+0x72/0x77 net/mptcp/protocol.c:2445 mptcp_worker+0x58a/0xa70 net/mptcp/protocol.c:2528 process_one_work+0x9df/0x16d0 kernel/workqueue.c:2307 worker_thread+0x95/0xe10 kernel/workqueue.c:2454 kthread+0x2f4/0x3b0 kernel/kthread.c:377 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 </TASK> ================================================================================
This change limits the maximum timeout by limiting the size of the shift, which keeps all intermediate values in-bounds.
Affected products
-
- Version StatusaffectedConstraints-
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version
-
- Version 5.12.4StatusaffectedConstraints<5.13
- Version
-
- Version 5.13StatusaffectedConstraints-
- Version 0StatusunaffectedConstraints<5.13
- Version 5.15.27StatusunaffectedConstraints<=5.15.*
- Version 5.16.13StatusunaffectedConstraints<=5.16.*
- Version 5.17StatusunaffectedConstraints<=*
- Version
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux | Linux | unaffected |
| ||||||||||||||||||
| Linux | Linux | unaffected |
| ||||||||||||||||||
| Linux | Linux | affected |
|
- ≥ 5.12.4 · < 5.13
- ≥ 5.13 · < 5.15.27
- ≥ 5.16 · < 5.16.13
- 5.17
- 5.17
- 5.17
- 5.17
- 5.17
- 5.17
No data.
Red Hat Enterprise Linux 6
kernel
Not affected
Red Hat Enterprise Linux 7
kernel
Not affected
Red Hat Enterprise Linux 7
kernel-rt
Not affected
Red Hat Enterprise Linux 8
kernel
Will not fix
Red Hat Enterprise Linux 8
kernel-rt
Will not fix
Red Hat Enterprise Linux 9
kernel
Not affected
Red Hat Enterprise Linux 9
kernel-rt
Not affected
| Product | Package | State | Advisory |
|---|---|---|---|
| Red Hat Enterprise Linux 6 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 7 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 7 | kernel-rt | Not affected | n/a |
| Red Hat Enterprise Linux 8 | kernel | Will not fix | n/a |
| Red Hat Enterprise Linux 8 | kernel-rt | Will not fix | n/a |
| Red Hat Enterprise Linux 9 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 9 | kernel-rt | Not affected | n/a |
No package ranges for this CVE.
Remediation
Red Hat statement
Following issue marked as moderate with "not affected" for Red Hat Enterprise Linux, as it is not vulnerable to this CVE. This is because the CVE does not impact the versions or configurations of the Linux kernel used in Red Hat's distributions. Additionally, some RHEL versions may be marked as "will not fix" due to the minimal impact of the issue, and no fix will be provided.
Red Hat mitigation
Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.
References (9)
- https://access.redhat.com/security/cve/CVE-2022-48906 Vendor Advisory
- https://bugzilla.redhat.com/show_bug.cgi?id=2307159 Issue Tracking
- https://euvd.enisa.europa.eu/vulnerability/EUVD-2022-53785 Advisory
- https://git.kernel.org/stable/c/03ae283bd71f761feae3f402668d698b393b0e79 Patch
- https://git.kernel.org/stable/c/0c3f34beb459753f9f80d0cc14c1b50ab615c631 Patch
- https://git.kernel.org/stable/c/877d11f0332cd2160e19e3313e262754c321fa36 Patch
- https://lore.kernel.org/linux-cve-announce/2024082213-CVE-2022-48906-76db@gregkh/T
- https://nvd.nist.gov/vuln/detail/CVE-2022-48906
- https://www.cve.org/CVERecord?id=CVE-2022-48906
Change history (0)
No recorded changes yet.