Description
In the Linux kernel, the following vulnerability has been resolved:
pid: take a reference when initializing `cad_pid`
During boot, kernel_init_freeable() initializes `cad_pid` to the init
task's struct pid. Later on, we may change `cad_pid` via a sysctl, and
when this happens proc_do_cad_pid() will increment the refcount on the
new pid via get_pid(), and will decrement the refcount on the old pid
via put_pid(). As we never called get_pid() when we initialized
`cad_pid`, we decrement a reference we never incremented, can therefore
free the init task's struct pid early. As there can be dangling
references to the struct pid, we can later encounter a use-after-free
(e.g. when delivering signals).
This was spotted when fuzzing v5.13-rc3 with Syzkaller, but seems to
have been around since the conversion of `cad_pid` to struct pid in
commit 9ec52099e4b8 ("[PATCH] replace cad_pid by a struct pid") from the
pre-KASAN stone age of v2.6.19.
Fix this by getting a reference to the init task's struct pid when we
assign it to `cad_pid`.
Full KASAN splat below.
==================================================================
BUG: KASAN: use-after-free in ns_of_pid include/linux/pid.h:153 [inline]
BUG: KASAN: use-after-free in task_active_pid_ns+0xc0/0xc8 kernel/pid.c:509
Read of size 4 at addr ffff23794dda0004 by task syz-executor.0/273
CPU: 1 PID: 273 Comm: syz-executor.0 Not tainted 5.12.0-00001-g9aef892b2d15 #1
Hardware name: linux,dummy-virt (DT)
Call trace:
ns_of_pid include/linux/pid.h:153 [inline]
task_active_pid_ns+0xc0/0xc8 kernel/pid.c:509
do_notify_parent+0x308/0xe60 kernel/signal.c:1950
exit_notify kernel/exit.c:682 [inline]
do_exit+0x2334/0x2bd0 kernel/exit.c:845
do_group_exit+0x108/0x2c8 kernel/exit.c:922
get_signal+0x4e4/0x2a88 kernel/signal.c:2781
do_signal arch/arm64/kernel/signal.c:882 [inline]
do_notify_resume+0x300/0x970 arch/arm64/kernel/signal.c:936
work_pending+0xc/0x2dc
Allocated by task 0:
slab_post_alloc_hook+0x50/0x5c0 mm/slab.h:516
slab_alloc_node mm/slub.c:2907 [inline]
slab_alloc mm/slub.c:2915 [inline]
kmem_cache_alloc+0x1f4/0x4c0 mm/slub.c:2920
alloc_pid+0xdc/0xc00 kernel/pid.c:180
copy_process+0x2794/0x5e18 kernel/fork.c:2129
kernel_clone+0x194/0x13c8 kernel/fork.c:2500
kernel_thread+0xd4/0x110 kernel/fork.c:2552
rest_init+0x44/0x4a0 init/main.c:687
arch_call_rest_init+0x1c/0x28
start_kernel+0x520/0x554 init/main.c:1064
0x0
Freed by task 270:
slab_free_hook mm/slub.c:1562 [inline]
slab_free_freelist_hook+0x98/0x260 mm/slub.c:1600
slab_free mm/slub.c:3161 [inline]
kmem_cache_free+0x224/0x8e0 mm/slub.c:3177
put_pid.part.4+0xe0/0x1a8 kernel/pid.c:114
put_pid+0x30/0x48 kernel/pid.c:109
proc_do_cad_pid+0x190/0x1b0 kernel/sysctl.c:1401
proc_sys_call_handler+0x338/0x4b0 fs/proc/proc_sysctl.c:591
proc_sys_write+0x34/0x48 fs/proc/proc_sysctl.c:617
call_write_iter include/linux/fs.h:1977 [inline]
new_sync_write+0x3ac/0x510 fs/read_write.c:518
vfs_write fs/read_write.c:605 [inline]
vfs_write+0x9c4/0x1018 fs/read_write.c:585
ksys_write+0x124/0x240 fs/read_write.c:658
__do_sys_write fs/read_write.c:670 [inline]
__se_sys_write fs/read_write.c:667 [inline]
__arm64_sys_write+0x78/0xb0 fs/read_write.c:667
__invoke_syscall arch/arm64/kernel/syscall.c:37 [inline]
invoke_syscall arch/arm64/kernel/syscall.c:49 [inline]
el0_svc_common.constprop.1+0x16c/0x388 arch/arm64/kernel/syscall.c:129
do_el0_svc+0xf8/0x150 arch/arm64/kernel/syscall.c:168
el0_svc+0x28/0x38 arch/arm64/kernel/entry-common.c:416
el0_sync_handler+0x134/0x180 arch/arm64/kernel/entry-common.c:432
el0_sync+0x154/0x180 arch/arm64/kernel/entry.S:701
The buggy address belongs to the object at ffff23794dda0000
which belongs to the cache pid of size 224
The buggy address is located 4 bytes inside of
224-byte region [ff
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 2.6.19 | 4.4.272 |
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.10.46-1 | — |
| Debian 13 | linux | 5.10.46-1 | — |
| Debian 12 | linux | 5.10.46-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-81.91 | — |
| Ubuntu 20.04 LTS | linux-aws | 5.4.0-1055.58 | — |
| Ubuntu 20.04 LTS | linux-azure | 5.4.0-1056.58 | — |
| Ubuntu 20.04 LTS | linux-bluefield | 5.4.0-1019.22 | — |
| Ubuntu 20.04 LTS | linux-gcp | 5.4.0-1051.55 | — |
| Ubuntu 20.04 LTS | linux-gke +26 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-gkeop | 5.4.0-1022.23 | — |
| Ubuntu 20.04 LTS | linux-kvm | 5.4.0-1045.47 | — |
| Ubuntu 20.04 LTS | linux-oracle | 5.4.0-1053.57 | — |
| Ubuntu 20.04 LTS | linux-raspi | 5.4.0-1042.46 | — |
| Ubuntu 18.04 LTS | linux | 4.15.0-154.161 | — |
| Ubuntu 18.04 LTS | linux-aws | 4.15.0-1110.117 | — |
| Ubuntu 18.04 LTS | linux-aws-5.4 | 5.4.0-1055.58~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-azure-4.15 | 4.15.0-1122.135 | — |
| Ubuntu 18.04 LTS | linux-azure-5.4 | 5.4.0-1056.58~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp-4.15 | 4.15.0-1107.121 | — |
| Ubuntu 18.04 LTS | linux-gcp-5.4 | 5.4.0-1051.55~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-hwe-5.4 | 5.4.0-81.91~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-kvm | 4.15.0-1098.100 | — |
| Ubuntu 18.04 LTS | linux-oracle | 4.15.0-1079.87 | — |
| Ubuntu 18.04 LTS | linux-oracle-5.4 | 5.4.0-1053.57~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-raspi-5.4 | 5.4.0-1042.46~18.04.3 | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
Show 8 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 16.04 LTS | linux-fips | 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-1032.37 | — |
| 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-2052.54 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-azure-fips | 4.15.0-2034.38 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-fips | 4.15.0-1068.77 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-gcp-fips | 4.15.0-2017.19 | — |
| Ubuntu Pro FIPS-updates 16.04 LTS | linux-fips | 4.4.0-1108.115 | — |
| Ubuntu Pro 16.04 LTS | linux | 4.4.0-262.296 | USN-7183-1 |
| Ubuntu Pro 16.04 LTS | linux-aws | 4.4.0-1177.192 | USN-7184-1 |
| Ubuntu Pro 16.04 LTS | linux-aws-hwe | 4.15.0-1110.117~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-azure | 4.15.0-1122.135~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-gcp | 4.15.0-1107.121~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-hwe | 4.15.0-154.161~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-kvm | 4.4.0-1140.151 | USN-7184-1 |
| Ubuntu Pro 16.04 LTS | linux-oracle | 4.15.0-1079.87~16.04.1 | — |
| Ubuntu Pro 14.04 LTS | linux | No fix yet | — |
| Ubuntu Pro 14.04 LTS | linux-aws | 4.4.0-1139.145 | USN-7184-1 |
| Ubuntu Pro 14.04 LTS | linux-azure | 4.15.0-1122.135~14.04.1 | — |
| Ubuntu Pro 14.04 LTS | linux-lts-xenial | 4.4.0-262.296~14.04.1 | USN-7183-1 |
Red Hat
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| RHEL 8 | kernel-rt +12 | 4.18.0-553.5.1.rt7.346.el8_10 | RHSA-2024:3627 |
| RHEL 8 | perf +26 | 4.18.0-553.5.1.el8_10 | RHSA-2024:3618 |
AlmaLinux
Errata ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| AlmaLinux 8 | kernel-rt +11 | 4.18.0-553.5.1.rt7.346.el8_10 | ALSA-2024:3627 |
| AlmaLinux 8 | perf +24 | 4.18.0-553.5.1.el8_10 | ALSA-2024:3618 |
Rocky Linux
Errata ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Rocky Linux 8 | kernel | 4.18.0-553.5.1.el8_10 | RLSA-2024:3618 |
| Rocky Linux 8 | kernel-rt | 4.18.0-553.5.1.rt7.346.el8_10 | RLSA-2024:3627 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP3 | kernel-64kb +7 | 5.3.18-150300.59.158.1 | SUSE-SU-2024:1489-1 |
| SLES 15 SP3 | kernel-default-base | 5.3.18-150300.59.158.1.150300.18.92.5 | SUSE-SU-2024:1489-1 |
| SLES 15 SP2 | kernel-default-base | 5.3.18-150200.24.188.1.150200.9.95.3 | SUSE-SU-2024:1454-1 |
| SLES 15 SP2 | kernel-docs +5 | 5.3.18-150200.24.188.1 | SUSE-SU-2024:1454-1 |
| SLES 12 SP5 | kernel-azure +2 | 4.12.14-16.182.1 | SUSE-SU-2024:1643-1 |
| SLES 12 SP5 | kernel-docs +4 | 4.12.14-122.216.1 | SUSE-SU-2024:1870-1 |
Show 12 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 15 SP3 | kernel-default-base | 5.3.18-150300.59.158.1.150300.18.92.5 | SUSE-SU-2024:1489-1 |
| SLES for SAP 15 SP3 | kernel-docs +5 | 5.3.18-150300.59.158.1 | SUSE-SU-2024:1489-1 |
| SLES for SAP 15 SP2 | kernel-default-base | 5.3.18-150200.24.188.1.150200.9.95.3 | SUSE-SU-2024:1454-1 |
| SLES for SAP 15 SP2 | kernel-docs +5 | 5.3.18-150200.24.188.1 | SUSE-SU-2024:1454-1 |
| SLES for SAP 12 SP5 | kernel-azure +2 | 4.12.14-16.182.1 | SUSE-SU-2024:1643-1 |
| SLES for SAP 12 SP5 | kernel-syms +2 | 4.12.14-122.216.1 | SUSE-SU-2024:1870-1 |
| SLE Real Time 12 SP5 | kernel-rt +3 | 4.12.14-10.182.1 | SUSE-SU-2024:1646-1 |
| SLE Micro 5.2 | kernel-default | 5.3.18-150300.59.158.1 | SUSE-SU-2024:1489-1 |
| SLE Micro 5.2 | kernel-default-base | 5.3.18-150300.59.158.1.150300.18.92.5 | SUSE-SU-2024:1489-1 |
| SLE Micro 5.2 | kernel-rt +1 | 5.3.18-150300.166.1 | SUSE-SU-2024:1465-1 |
| SLE Micro 5.1 | kernel-default | 5.3.18-150300.59.158.1 | SUSE-SU-2024:1489-1 |
| SLE Micro 5.1 | kernel-default-base | 5.3.18-150300.59.158.1.150300.18.92.5 | SUSE-SU-2024:1489-1 |
| SLE Micro 5.1 | kernel-rt +1 | 5.3.18-150300.166.1 | SUSE-SU-2024:1465-1 |
| SLE Live Patching 15 SP3 | kernel-default | 5.3.18-150300.59.158.1 | SUSE-SU-2024:1489-1 |
| SLE Live Patching 15 SP3 | kernel-livepatch-SLE15-SP3_Update_43 | 1-150300.7.3.5 | SUSE-SU-2024:1489-1 |
| SLE Live Patching 15 SP2 | kernel-default | 5.3.18-150200.24.188.1 | SUSE-SU-2024:1454-1 |
| SLE Live Patching 15 SP2 | kernel-livepatch-SLE15-SP2_Update_47 | 1-150200.5.3.3 | SUSE-SU-2024:1454-1 |
| SLE Live Patching 12 SP5 | kernel-default | 4.12.14-122.216.1 | SUSE-SU-2024:1870-1 |
| SLE Live Patching 12 SP5 | kgraft-patch-SLE12-SP5_Update_56 | 1-8.3.1 | SUSE-SU-2024:1870-1 |
| SLE HPC 15 SP3 | kernel-64kb +6 | 5.3.18-150300.59.158.1 | SUSE-SU-2024:1489-1 |
| SLE HPC 15 SP3 | kernel-default-base | 5.3.18-150300.59.158.1.150300.18.92.5 | SUSE-SU-2024:1489-1 |
| SLE HPC 15 SP2 | kernel-default-base | 5.3.18-150200.24.188.1.150200.9.95.3 | SUSE-SU-2024:1454-1 |
| SLE HPC 15 SP2 | kernel-docs +5 | 5.3.18-150200.24.188.1 | SUSE-SU-2024:1454-1 |
| SUSE Enterprise Storage 7.1 | kernel-64kb +6 | 5.3.18-150300.59.158.1 | SUSE-SU-2024:1489-1 |
| SUSE Enterprise Storage 7.1 | kernel-default-base | 5.3.18-150300.59.158.1.150300.18.92.5 | SUSE-SU-2024:1489-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2 | kernel-livepatch-4.14.238-182.421 | 1.0-0.amzn2 | ALAS2-2021-1685 |
| Amazon Linux 2 | perf +8 | 4.14.238-182.421.amzn2 | ALAS2-2021-1685 |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 8 | perf +19 | 4.18.0-553.5.1.el8_10 | ELSA-2024-3618 |
| Oracle Linux 7 | kernel-uek +5 | 4.1.12-124.89.4.el7uek | ELSA-2024-12606 |
Advisories 18
- RHSA-2024:3627 Red Hat Security Advisory: kernel-rt security and bug fix update Red Hat Security Advisories (RHSA) · Nov 13, 2026
- USN-7183-1 linux, linux-lts-xenial vulnerabilities Ubuntu Security Notices (USN) · Oct 29, 2026
- USN-7184-1 linux-aws, linux-kvm vulnerabilities Ubuntu Security Notices (USN) · Oct 29, 2026
- ALSA-2024:3627 Moderate: kernel-rt security and bug fix update AlmaLinux Security Advisories · Oct 29, 2026
- ALSA-2024:3618 Moderate: kernel update AlmaLinux Security Advisories · Oct 29, 2026
- RHSA-2024:3618 Red Hat Security Advisory: kernel update Red Hat Security Advisories (RHSA) · Oct 15, 2026
- WID-SEC-2024-0652 Linux Kernel: Mehrere Schwachstellen ermöglichen Denial of Service BSI CERT-Bund (WID) · Aug 13, 2026
- RLSA-2024:3627 Moderate: kernel-rt security and bug fix update Rocky Linux Security Advisories · Feb 4, 2026
- RLSA-2024:3618 Moderate: kernel update Rocky Linux Security Advisories · Feb 4, 2026
- SUSE-SU-2024:1489-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1870-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1454-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1646-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1643-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1465-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- ALAS2-2021-1685 Important: kernel security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · Oct 2, 2025
- ELSA-2024-12606 Important: Unbreakable Enterprise kernel security update (Oracle Linux 7) Oracle Linux Security Advisories (ELSA) · Sep 2, 2024
- ELSA-2024-3618 Moderate: kernel update (Oracle Linux 8) Oracle Linux Security Advisories (ELSA) · Jun 5, 2024
References
- https://git.kernel.org/stable/c/764c2e892d1fe895392aff62fb353fdce43bb529
- https://git.kernel.org/stable/c/f86c80515a8a3703e0ca2e56deb50fc2879c5ea4
- https://git.kernel.org/stable/c/4dbd8808a591b49b717862e6e0081bcf14a87788
- https://git.kernel.org/stable/c/d106f05432e60f9f62d456ef017687f5c73cb414
- https://git.kernel.org/stable/c/2cd6eedfa6344f5ef5c3dac3aee57a39b5b46dff
- https://git.kernel.org/stable/c/7178be006d495ffb741c329012da289b62dddfe6
- https://git.kernel.org/stable/c/b8ff869f20152fbe66b6c2e2715d26a2f9897cca
- https://git.kernel.org/stable/c/0711f0d7050b9e07c44bc159bbc64ac0a1022c7f