Description
In the Linux kernel, the following vulnerability has been resolved:
sctp: use call_rcu to free endpoint
This patch is to delay the endpoint free by calling call_rcu() to fix
another use-after-free issue in sctp_sock_dump():
BUG: KASAN: use-after-free in __lock_acquire+0x36d9/0x4c20
Call Trace:
__lock_acquire+0x36d9/0x4c20 kernel/locking/lockdep.c:3218
lock_acquire+0x1ed/0x520 kernel/locking/lockdep.c:3844
__raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
_raw_spin_lock_bh+0x31/0x40 kernel/locking/spinlock.c:168
spin_lock_bh include/linux/spinlock.h:334 [inline]
__lock_sock+0x203/0x350 net/core/sock.c:2253
lock_sock_nested+0xfe/0x120 net/core/sock.c:2774
lock_sock include/net/sock.h:1492 [inline]
sctp_sock_dump+0x122/0xb20 net/sctp/diag.c:324
sctp_for_each_transport+0x2b5/0x370 net/sctp/socket.c:5091
sctp_diag_dump+0x3ac/0x660 net/sctp/diag.c:527
__inet_diag_dump+0xa8/0x140 net/ipv4/inet_diag.c:1049
inet_diag_dump+0x9b/0x110 net/ipv4/inet_diag.c:1065
netlink_dump+0x606/0x1080 net/netlink/af_netlink.c:2244
__netlink_dump_start+0x59a/0x7c0 net/netlink/af_netlink.c:2352
netlink_dump_start include/linux/netlink.h:216 [inline]
inet_diag_handler_cmd+0x2ce/0x3f0 net/ipv4/inet_diag.c:1170
__sock_diag_cmd net/core/sock_diag.c:232 [inline]
sock_diag_rcv_msg+0x31d/0x410 net/core/sock_diag.c:263
netlink_rcv_skb+0x172/0x440 net/netlink/af_netlink.c:2477
sock_diag_rcv+0x2a/0x40 net/core/sock_diag.c:274
This issue occurs when asoc is peeled off and the old sk is freed after
getting it by asoc->base.sk and before calling lock_sock(sk).
To prevent the sk free, as a holder of the sk, ep should be alive when
calling lock_sock(). This patch uses call_rcu() and moves sock_put and
ep free into sctp_endpoint_destroy_rcu(), so that it's safe to try to
hold the ep under rcu_read_lock in sctp_transport_traverse_process().
If sctp_endpoint_hold() returns true, it means this ep is still alive
and we have held it and can continue to dump it; If it returns false,
it means this ep is dead and can be freed after rcu_read_unlock, and
we should skip it.
In sctp_sock_dump(), after locking the sk, if this ep is different from
tsp->asoc->ep, it means during this dumping, this asoc was peeled off
before calling lock_sock(), and the sk should be skipped; If this ep is
the same with tsp->asoc->ep, it means no peeloff happens on this asoc,
and due to lock_sock, no peeloff will happen either until release_sock.
Note that delaying endpoint free won't delay the port release, as the
port release happens in sctp_endpoint_destroy() before calling call_rcu().
Also, freeing endpoint by call_rcu() makes it safe to access the sk by
asoc->base.sk in sctp_assocs_seq_show() and sctp_rcv().
Thanks Jones to bring this issue up.
v1->v2:
- improve the changelog.
- add kfree(ep) into sctp_endpoint_destroy_rcu(), as Jakub noticed.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 4.14 | 4.14.261 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 5.15.15-1 | — |
| Debian 13 | linux | 5.15.15-1 | — |
| Debian 12 | linux | 5.15.15-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 24.04 LTS | linux-raspi-realtime | No fix yet | — |
| Ubuntu 22.04 LTS | linux-riscv +22 | No fix yet | — |
| Ubuntu 20.04 LTS | linux | 5.4.0-105.119 | — |
| Ubuntu 20.04 LTS | linux-aws | 5.4.0-1069.73 | — |
| Ubuntu 20.04 LTS | linux-azure | 5.4.0-1073.76 | — |
| Ubuntu 20.04 LTS | linux-bluefield | 5.4.0-1032.35 | — |
| Ubuntu 20.04 LTS | linux-gcp | 5.4.0-1068.72 | — |
| Ubuntu 20.04 LTS | linux-gke +26 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-gkeop | 5.4.0-1037.38 | — |
| Ubuntu 20.04 LTS | linux-ibm | 5.4.0-1018.20 | — |
| Ubuntu 20.04 LTS | linux-kvm | 5.4.0-1059.62 | — |
| Ubuntu 20.04 LTS | linux-oracle | 5.4.0-1067.72 | — |
| Ubuntu 20.04 LTS | linux-raspi | 5.4.0-1056.63 | — |
| Ubuntu 18.04 LTS | linux | 4.15.0-173.182 | — |
| Ubuntu 18.04 LTS | linux-aws | 4.15.0-1124.133 | — |
| Ubuntu 18.04 LTS | linux-aws-5.4 | 5.4.0-1069.73~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-azure-4.15 | 4.15.0-1134.147 | — |
| Ubuntu 18.04 LTS | linux-azure-5.4 | 5.4.0-1073.76~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp-4.15 | 4.15.0-1119.133 | — |
| Ubuntu 18.04 LTS | linux-gcp-5.4 | 5.4.0-1068.72~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-hwe-5.4 | 5.4.0-105.119~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-ibm-5.4 | 5.4.0-1018.20~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-kvm | 4.15.0-1110.113 | — |
| Ubuntu 18.04 LTS | linux-oracle | 4.15.0-1090.99 | — |
| Ubuntu 18.04 LTS | linux-oracle-5.4 | 5.4.0-1067.72~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-raspi-5.4 | 5.4.0-1056.63~18.04.1 | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
Show 6 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro FIPS 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-aws-fips | 5.4.0-1069.73+fips2 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-azure-fips | 5.4.0-1073.76+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips | 5.4.0-1046.52 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-gcp-fips | 5.4.0-1067.71~20.04.1 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-aws-fips | 4.15.0-2064.67 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-azure-fips | 4.15.0-2046.50 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-fips | 4.15.0-1081.90 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-gcp-fips | 4.15.0-2029.32 | — |
| Ubuntu Pro 16.04 LTS | linux-aws-hwe | 4.15.0-1124.133~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-azure | 4.15.0-1134.147~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-gcp | 4.15.0-1119.133~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-hwe | 4.15.0-173.182~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-oracle | 4.15.0-1090.99~16.04.1 | — |
| Ubuntu Pro 14.04 LTS | linux-azure | 4.15.0-1134.147~14.04.1 | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP5 | kernel-64kb +6 | 5.14.21-150500.55.59.1 | SUSE-SU-2024:1480-1 |
| SLES 15 SP5 | kernel-azure +2 | 5.14.21-150500.33.48.1 | SUSE-SU-2024:1490-1 |
| SLES 15 SP5 | kernel-default-base | 5.14.21-150500.55.59.1.150500.6.25.7 | SUSE-SU-2024:1480-1 |
| SLES 15 SP4 | kernel-64kb +6 | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| SLES 15 SP4 | kernel-default-base | 5.14.21-150400.24.116.1.150400.24.54.5 | SUSE-SU-2024:1321-1 |
| SLES 15 SP3 | kernel-64kb +6 | 5.3.18-150300.59.153.2 | SUSE-SU-2024:0857-1 |
| SLES 15 SP3 | kernel-default-base | 5.3.18-150300.59.153.2.150300.18.90.2 | SUSE-SU-2024:0857-1 |
| SLES 15 SP3 | kernel-syms | 5.3.18-150300.59.153.1 | SUSE-SU-2024:0857-1 |
| SLES 15 SP2 | kernel-default-base | 5.3.18-150200.24.183.1.150200.9.93.2 | SUSE-SU-2024:0926-1 |
| SLES 15 SP2 | kernel-docs +5 | 5.3.18-150200.24.183.1 | SUSE-SU-2024:0926-1 |
| SLES 12 SP5 | kernel-azure +2 | 4.12.14-16.173.1 | SUSE-SU-2024:0975-1 |
| SLES 12 SP5 | kernel-docs +3 | 4.12.14-122.201.1 | SUSE-SU-2024:0925-1 |
| SLES 12 SP5 | kernel-obs-build | 4.12.14-122.201.2 | SUSE-SU-2024:0925-1 |
Show 22 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 15 SP4 | kernel-default-base | 5.14.21-150400.24.116.1.150400.24.54.5 | SUSE-SU-2024:1321-1 |
| SLES for SAP 15 SP4 | kernel-docs +4 | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| SLES for SAP 15 SP3 | kernel-default-base | 5.3.18-150300.59.153.2.150300.18.90.2 | SUSE-SU-2024:0857-1 |
| SLES for SAP 15 SP3 | kernel-docs +4 | 5.3.18-150300.59.153.2 | SUSE-SU-2024:0857-1 |
| SLES for SAP 15 SP3 | kernel-syms | 5.3.18-150300.59.153.1 | SUSE-SU-2024:0857-1 |
| SLES for SAP 15 SP2 | kernel-default-base | 5.3.18-150200.24.183.1.150200.9.93.2 | SUSE-SU-2024:0926-1 |
| SLES for SAP 15 SP2 | kernel-docs +5 | 5.3.18-150200.24.183.1 | SUSE-SU-2024:0926-1 |
| SLES for SAP 12 SP5 | kernel-azure +2 | 4.12.14-16.173.1 | SUSE-SU-2024:0975-1 |
| SLES for SAP 12 SP5 | kernel-syms +2 | 4.12.14-122.201.1 | SUSE-SU-2024:0925-1 |
| SLE Real Time 12 SP5 | kernel-rt +3 | 4.12.14-10.171.1 | SUSE-SU-2024:0976-1 |
| SLE Micro 5.5 | kernel-default | 5.14.21-150500.55.59.1 | SUSE-SU-2024:1480-1 |
| SLE Micro 5.5 | kernel-default-base | 5.14.21-150500.55.59.1.150500.6.25.7 | SUSE-SU-2024:1480-1 |
| SLE Micro 5.5 | kernel-rt +1 | 5.14.21-150500.13.47.1 | SUSE-SU-2024:1466-1 |
| SLE Micro 5.4 | kernel-default | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| SLE Micro 5.4 | kernel-default-base | 5.14.21-150400.24.116.1.150400.24.54.5 | SUSE-SU-2024:1321-1 |
| SLE Micro 5.4 | kernel-rt +1 | 5.14.21-150400.15.76.1 | SUSE-SU-2024:1320-1 |
| SLE Micro 5.3 | kernel-default | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| SLE Micro 5.3 | kernel-default-base | 5.14.21-150400.24.116.1.150400.24.54.5 | SUSE-SU-2024:1321-1 |
| SLE Micro 5.3 | kernel-rt +1 | 5.14.21-150400.15.76.1 | SUSE-SU-2024:1320-1 |
| SLE Micro 5.2 | kernel-default | 5.3.18-150300.59.153.2 | SUSE-SU-2024:0857-1 |
| SLE Micro 5.2 | kernel-default-base | 5.3.18-150300.59.153.2.150300.18.90.2 | SUSE-SU-2024:0857-1 |
| SLE Micro 5.2 | kernel-rt +1 | 5.3.18-150300.161.1 | SUSE-SU-2024:0856-1 |
| SLE Micro 5.1 | kernel-default | 5.3.18-150300.59.153.2 | SUSE-SU-2024:0857-1 |
| SLE Micro 5.1 | kernel-default-base | 5.3.18-150300.59.153.2.150300.18.90.2 | SUSE-SU-2024:0857-1 |
| SLE Micro 5.1 | kernel-rt +1 | 5.3.18-150300.161.1 | SUSE-SU-2024:0856-1 |
| SLE Live Patching 15 SP5 | kernel-default | 5.14.21-150500.55.59.1 | SUSE-SU-2024:1480-1 |
| SLE Live Patching 15 SP5 | kernel-livepatch-SLE15-SP5-RT_Update_13 | 1-150500.11.3.1 | SUSE-SU-2024:1466-1 |
| SLE Live Patching 15 SP5 | kernel-livepatch-SLE15-SP5_Update_12 | 1-150500.11.7.1 | SUSE-SU-2024:1480-1 |
| SLE Live Patching 15 SP4 | kernel-default | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| SLE Live Patching 15 SP4 | kernel-livepatch-SLE15-SP4_Update_25 | 1-150400.9.5.1 | SUSE-SU-2024:1321-1 |
| SLE Live Patching 15 SP3 | kernel-default | 5.3.18-150300.59.153.2 | SUSE-SU-2024:0857-1 |
| SLE Live Patching 15 SP3 | kernel-livepatch-SLE15-SP3_Update_42 | 1-150300.7.3.2 | SUSE-SU-2024:0857-1 |
| SLE Live Patching 15 SP2 | kernel-default | 5.3.18-150200.24.183.1 | SUSE-SU-2024:0926-1 |
| SLE Live Patching 15 SP2 | kernel-livepatch-SLE15-SP2_Update_46 | 1-150200.5.3.2 | SUSE-SU-2024:0926-1 |
| SLE Live Patching 12 SP5 | kernel-default | 4.12.14-122.201.1 | SUSE-SU-2024:0925-1 |
| SLE Live Patching 12 SP5 | kgraft-patch-SLE12-SP5_Update_54 | 1-8.7.1 | SUSE-SU-2024:0925-1 |
| SLE HPC 15 SP4 | kernel-64kb +5 | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| SLE HPC 15 SP4 | kernel-default-base | 5.14.21-150400.24.116.1.150400.24.54.5 | SUSE-SU-2024:1321-1 |
| SLE HPC 15 SP3 | kernel-64kb +5 | 5.3.18-150300.59.153.2 | SUSE-SU-2024:0857-1 |
| SLE HPC 15 SP3 | kernel-default-base | 5.3.18-150300.59.153.2.150300.18.90.2 | SUSE-SU-2024:0857-1 |
| SLE HPC 15 SP3 | kernel-syms | 5.3.18-150300.59.153.1 | SUSE-SU-2024:0857-1 |
| SLE HPC 15 SP2 | kernel-default-base | 5.3.18-150200.24.183.1.150200.9.93.2 | SUSE-SU-2024:0926-1 |
| SLE HPC 15 SP2 | kernel-docs +5 | 5.3.18-150200.24.183.1 | SUSE-SU-2024:0926-1 |
| SUSE Real Time Module 15 SP5 | kernel-rt +3 | 5.14.21-150500.13.47.1 | SUSE-SU-2024:1466-1 |
| SUSE Manager Server 4.3 | kernel-default-base | 5.14.21-150400.24.116.1.150400.24.54.5 | SUSE-SU-2024:1321-1 |
| SUSE Manager Server 4.3 | kernel-syms +3 | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| SUSE Manager Proxy 4.3 | kernel-default-base | 5.14.21-150400.24.116.1.150400.24.54.5 | SUSE-SU-2024:1321-1 |
| SUSE Manager Proxy 4.3 | kernel-syms +2 | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| SUSE Enterprise Storage 7.1 | kernel-64kb +5 | 5.3.18-150300.59.153.2 | SUSE-SU-2024:0857-1 |
| SUSE Enterprise Storage 7.1 | kernel-default-base | 5.3.18-150300.59.153.2.150300.18.90.2 | SUSE-SU-2024:0857-1 |
| SUSE Enterprise Storage 7.1 | kernel-syms | 5.3.18-150300.59.153.1 | SUSE-SU-2024:0857-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 15.5 | dtb-aarch64 +10 | 5.14.21-150500.55.59.1 | SUSE-SU-2024:1480-1 |
| openSUSE Leap 15.5 | kernel-azure +2 | 5.14.21-150500.33.48.1 | SUSE-SU-2024:1490-1 |
| openSUSE Leap 15.5 | kernel-default-base | 5.14.21-150500.55.59.1.150500.6.25.7 | SUSE-SU-2024:1480-1 |
| openSUSE Leap 15.5 | kernel-rt +3 | 5.14.21-150500.13.47.1 | SUSE-SU-2024:1466-1 |
Show 2 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap Micro 5.4 | kernel-default | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| openSUSE Leap Micro 5.4 | kernel-default-base | 5.14.21-150400.24.116.1.150400.24.54.5 | SUSE-SU-2024:1321-1 |
| openSUSE Leap Micro 5.4 | kernel-rt | 5.14.21-150400.15.76.1 | SUSE-SU-2024:1320-1 |
| openSUSE Leap Micro 5.3 | kernel-default | 5.14.21-150400.24.116.1 | SUSE-SU-2024:1321-1 |
| openSUSE Leap Micro 5.3 | kernel-default-base | 5.14.21-150400.24.116.1.150400.24.54.5 | SUSE-SU-2024:1321-1 |
| openSUSE Leap Micro 5.3 | kernel-rt | 5.14.21-150400.15.76.1 | SUSE-SU-2024:1320-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2 | kernel-livepatch-4.14.262-200.489 | 1.0-0.amzn2 | ALAS2-2022-1749 |
| Amazon Linux 2 | perf +8 | 4.14.262-200.489.amzn2 | ALAS2-2022-1749 |
Advisories 13
- SUSE-SU-2024:0926-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:0975-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1320-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1480-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:0976-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1490-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1466-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:0925-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- WID-SEC-2024-0488 Linux Kernel: Mehrere Schwachstellen ermöglichen nicht spezifizierten Angriff BSI CERT-Bund (WID) · Oct 1, 2025
- ALAS2-2022-1749 Important: kernel security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · May 19, 2025
- SUSE-SU-2024:1321-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · May 2, 2025
- SUSE-SU-2024:0857-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · May 2, 2025
- SUSE-SU-2024:0856-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · May 2, 2025
References
- https://git.kernel.org/stable/c/8873140f95d4977bf37e4cf0d5c5e3f6e34cdd3e
- https://git.kernel.org/stable/c/af6e6e58f7ebf86b4e7201694b1e4f3a62cbc3ec
- https://git.kernel.org/stable/c/831de271452b87657fcf8d715ee20519b79caef5
- https://git.kernel.org/stable/c/769d14abd35e0e153b5149c3e1e989a9d719e3ff
- https://git.kernel.org/stable/c/75799e71df1da11394740b43ae5686646179561d
- https://git.kernel.org/stable/c/5ec7d18d1813a5bead0b495045606c93873aecbb