CVE-2021-46999·Kernel vulnerability
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.
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.12.5
- Published
- 2024-02-28
Affected versions
From: 5.12
Until: 5.12.5
Fixed in: 5.12.5
How to fix this CVE
Update your Linux kernel to version 5.12.5 or later to resolve a use-after-free vulnerability in SCTP's duplicate COOKIE-ECHO handling. This vulnerability can cause kernel panics and memory corruption when processing malformed SCTP packets. Apply the kernel update immediately and reboot your system to activate the patched version.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check current kernel version with `uname -r` and compare against 5.12.5 — versions 5.12.0 through 5.12.4 are vulnerable
- Step 2: Verify SCTP module is loaded with `lsmod | grep sctp` — if present, the vulnerable code path is active
- Step 3: Search kernel logs for SCTP-related crashes using `dmesg | grep -i 'sctp\|general protection fault'` to identify past exploitation attempts
- Step 4: After kernel update and reboot, confirm the patch with `uname -r` and verify no SCTP panic errors in `dmesg` during normal operation
FAQ
What is CVE-2021-46999?
CVE-2021-46999 is a use-after-free vulnerability in the Linux kernel's SCTP protocol handler. When processing duplicate COOKIE-ECHO chunks, the code incorrectly references transport objects from a freed association, leading to kernel panics and potential code execution.
Is CVE-2021-46999 being actively exploited?
No, this vulnerability is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog and has no public exploits available. However, the high CVSS score (7.8) means it should be patched promptly.
What versions of Kernel are affected by CVE-2021-46999?
Linux kernel versions 5.12.0 through 5.12.4 are vulnerable. Version 5.12.5 and later include the fix.
How do I check if my server is vulnerable to CVE-2021-46999?
Run `uname -r` to check your kernel version. If it reports 5.12.0 through 5.12.4, your system is vulnerable. Kernel versions outside the 5.12.x series are not affected by this specific issue.
Does Defensia detect CVE-2021-46999?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Linux kernel is installed on a monitored server, CVE-2021-46999 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/0bfd913c2121b3d553bfd52810fe6061d542d625
- https://git.kernel.org/stable/c/35b4f24415c854cd718ccdf38dbea6297f010aae
- https://git.kernel.org/stable/c/61b877bad9bb0d82b7d8841be50872557090a704
- https://git.kernel.org/stable/c/b1b31948c0af44628e43353828453461bb74098f
- https://git.kernel.org/stable/c/d624f2991b977821375fbd56c91b0c91d456a697
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-46999. Free for 1 server.
Get started free