7.8
HIGH
CVE-2021-46999
Linux SCTP Use-After-Free Vulnerability
Description

In the Linux kernel, the following vulnerability has been resolved: sctp: do asoc update earlier in sctp_sf_do_dupcook_a There's a panic that occurs in a few of envs, the call trace is as below: [] general protection fault, ... 0x29acd70f1000a: 0000 [#1] SMP PTI [] RIP: 0010:sctp_ulpevent_notify_peer_addr_change+0x4b/0x1fa [sctp] [] sctp_assoc_control_transport+0x1b9/0x210 [sctp] [] sctp_do_8_2_transport_strike.isra.16+0x15c/0x220 [sctp] [] sctp_cmd_interpreter.isra.21+0x1231/0x1a10 [sctp] [] sctp_do_sm+0xc3/0x2a0 [sctp] [] sctp_generate_timeout_event+0x81/0xf0 [sctp] This is caused by a transport use-after-free issue. When processing a duplicate COOKIE-ECHO chunk in sctp_sf_do_dupcook_a(), both COOKIE-ACK and SHUTDOWN chunks are allocated with the transort from the new asoc. However, later in the sideeffect machine, the old asoc is used to send them out and old asoc's shutdown_last_sent_to is set to the transport that SHUTDOWN chunk attached to in sctp_cmd_setup_t2(), which actually belongs to the new asoc. After the new_asoc is freed and the old asoc T2 timeout, the old asoc's shutdown_last_sent_to that is already freed would be accessed in sctp_sf_t2_timer_expire(). Thanks Alexander and Jere for helping dig into this issue. To fix it, this patch is to do the asoc update first, then allocate the COOKIE-ACK and SHUTDOWN chunks with the 'updated' old asoc. This would make more sense, as a chunk from an asoc shouldn't be sent out with another asoc. We had fixed quite a few issues caused by this.

INFO

Published Date :

Feb. 28, 2024, 9:15 a.m.

Last Modified :

Jan. 8, 2025, 5:36 p.m.

Source :

416baaa9-dc9f-4396-8d5f-8c081fb06d67

Remotely Exploitable :

No

Impact Score :

5.9

Exploitability Score :

1.8
Affected Products

The following products are affected by CVE-2021-46999 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Linux linux_kernel

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2021-46999 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2021-46999 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • Initial Analysis by [email protected]

    Jan. 08, 2025

    Action Type Old Value New Value
    Added CVSS V3.1 NIST AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    Added CWE NIST CWE-416
    Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 4.19.123 up to (excluding) 4.19.191 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.4.41 up to (excluding) 5.4.120 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.7 up to (excluding) 5.10.38 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.11 up to (excluding) 5.11.22 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.12 up to (excluding) 5.12.5
    Changed Reference Type https://git.kernel.org/stable/c/0bfd913c2121b3d553bfd52810fe6061d542d625 No Types Assigned https://git.kernel.org/stable/c/0bfd913c2121b3d553bfd52810fe6061d542d625 Patch
    Changed Reference Type https://git.kernel.org/stable/c/0bfd913c2121b3d553bfd52810fe6061d542d625 No Types Assigned https://git.kernel.org/stable/c/0bfd913c2121b3d553bfd52810fe6061d542d625 Patch
    Changed Reference Type https://git.kernel.org/stable/c/35b4f24415c854cd718ccdf38dbea6297f010aae No Types Assigned https://git.kernel.org/stable/c/35b4f24415c854cd718ccdf38dbea6297f010aae Patch
    Changed Reference Type https://git.kernel.org/stable/c/35b4f24415c854cd718ccdf38dbea6297f010aae No Types Assigned https://git.kernel.org/stable/c/35b4f24415c854cd718ccdf38dbea6297f010aae Patch
    Changed Reference Type https://git.kernel.org/stable/c/61b877bad9bb0d82b7d8841be50872557090a704 No Types Assigned https://git.kernel.org/stable/c/61b877bad9bb0d82b7d8841be50872557090a704 Patch
    Changed Reference Type https://git.kernel.org/stable/c/61b877bad9bb0d82b7d8841be50872557090a704 No Types Assigned https://git.kernel.org/stable/c/61b877bad9bb0d82b7d8841be50872557090a704 Patch
    Changed Reference Type https://git.kernel.org/stable/c/b1b31948c0af44628e43353828453461bb74098f No Types Assigned https://git.kernel.org/stable/c/b1b31948c0af44628e43353828453461bb74098f Patch
    Changed Reference Type https://git.kernel.org/stable/c/b1b31948c0af44628e43353828453461bb74098f No Types Assigned https://git.kernel.org/stable/c/b1b31948c0af44628e43353828453461bb74098f Patch
    Changed Reference Type https://git.kernel.org/stable/c/d624f2991b977821375fbd56c91b0c91d456a697 No Types Assigned https://git.kernel.org/stable/c/d624f2991b977821375fbd56c91b0c91d456a697 Patch
    Changed Reference Type https://git.kernel.org/stable/c/d624f2991b977821375fbd56c91b0c91d456a697 No Types Assigned https://git.kernel.org/stable/c/d624f2991b977821375fbd56c91b0c91d456a697 Patch
    Changed Reference Type https://git.kernel.org/stable/c/f01988ecf3654f805282dce2d3bb9afe68d2691e No Types Assigned https://git.kernel.org/stable/c/f01988ecf3654f805282dce2d3bb9afe68d2691e Patch
    Changed Reference Type https://git.kernel.org/stable/c/f01988ecf3654f805282dce2d3bb9afe68d2691e No Types Assigned https://git.kernel.org/stable/c/f01988ecf3654f805282dce2d3bb9afe68d2691e Patch
  • CVE Modified by af854a3a-2127-422b-91ae-364da2661108

    Nov. 21, 2024

    Action Type Old Value New Value
    Added Reference https://git.kernel.org/stable/c/0bfd913c2121b3d553bfd52810fe6061d542d625
    Added Reference https://git.kernel.org/stable/c/35b4f24415c854cd718ccdf38dbea6297f010aae
    Added Reference https://git.kernel.org/stable/c/61b877bad9bb0d82b7d8841be50872557090a704
    Added Reference https://git.kernel.org/stable/c/b1b31948c0af44628e43353828453461bb74098f
    Added Reference https://git.kernel.org/stable/c/d624f2991b977821375fbd56c91b0c91d456a697
    Added Reference https://git.kernel.org/stable/c/f01988ecf3654f805282dce2d3bb9afe68d2691e
  • CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    May. 28, 2024

    Action Type Old Value New Value
  • CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    May. 14, 2024

    Action Type Old Value New Value
  • CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Feb. 28, 2024

    Action Type Old Value New Value
    Added Description In the Linux kernel, the following vulnerability has been resolved: sctp: do asoc update earlier in sctp_sf_do_dupcook_a There's a panic that occurs in a few of envs, the call trace is as below: [] general protection fault, ... 0x29acd70f1000a: 0000 [#1] SMP PTI [] RIP: 0010:sctp_ulpevent_notify_peer_addr_change+0x4b/0x1fa [sctp] [] sctp_assoc_control_transport+0x1b9/0x210 [sctp] [] sctp_do_8_2_transport_strike.isra.16+0x15c/0x220 [sctp] [] sctp_cmd_interpreter.isra.21+0x1231/0x1a10 [sctp] [] sctp_do_sm+0xc3/0x2a0 [sctp] [] sctp_generate_timeout_event+0x81/0xf0 [sctp] This is caused by a transport use-after-free issue. When processing a duplicate COOKIE-ECHO chunk in sctp_sf_do_dupcook_a(), both COOKIE-ACK and SHUTDOWN chunks are allocated with the transort from the new asoc. However, later in the sideeffect machine, the old asoc is used to send them out and old asoc's shutdown_last_sent_to is set to the transport that SHUTDOWN chunk attached to in sctp_cmd_setup_t2(), which actually belongs to the new asoc. After the new_asoc is freed and the old asoc T2 timeout, the old asoc's shutdown_last_sent_to that is already freed would be accessed in sctp_sf_t2_timer_expire(). Thanks Alexander and Jere for helping dig into this issue. To fix it, this patch is to do the asoc update first, then allocate the COOKIE-ACK and SHUTDOWN chunks with the 'updated' old asoc. This would make more sense, as a chunk from an asoc shouldn't be sent out with another asoc. We had fixed quite a few issues caused by this.
    Added Reference Linux https://git.kernel.org/stable/c/d624f2991b977821375fbd56c91b0c91d456a697 [No types assigned]
    Added Reference Linux https://git.kernel.org/stable/c/b1b31948c0af44628e43353828453461bb74098f [No types assigned]
    Added Reference Linux https://git.kernel.org/stable/c/f01988ecf3654f805282dce2d3bb9afe68d2691e [No types assigned]
    Added Reference Linux https://git.kernel.org/stable/c/61b877bad9bb0d82b7d8841be50872557090a704 [No types assigned]
    Added Reference Linux https://git.kernel.org/stable/c/0bfd913c2121b3d553bfd52810fe6061d542d625 [No types assigned]
    Added Reference Linux https://git.kernel.org/stable/c/35b4f24415c854cd718ccdf38dbea6297f010aae [No types assigned]
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2021-46999 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2021-46999 weaknesses.

CVSS31 - Vulnerability Scoring System
Attack Vector
Attack Complexity
Privileges Required
User Interaction
Scope
Confidentiality
Integrity
Availability
© cvefeed.io
Latest DB Update: Jul. 14, 2025 8:28