Skip to content
OpenAdvisories
Unscored CVE-2022-50661 EUVD-2022-55744GHSA-256c-6mf5-7f9p

seccomp: Move copy_seccomp() to no failure path.

Published Dec 9, 2025 · Updated May 11, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-bluefield Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-edge Package: linux-ibm Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.11 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-tegra-5.15 Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.14 Package: linux-riscv-6.5 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

In the Linux kernel, the following vulnerability has been resolved:

seccomp: Move copy_seccomp() to no failure path.

Our syzbot instance reported memory leaks in do_seccomp() [0], similar
to the report [1]. It shows that we miss freeing struct seccomp_filter
and some objects included in it.

We can reproduce the issue with the program below [2] which calls one
seccomp() and two clone() syscalls.

The first clone()d child exits earlier than its parent and sends a
signal to kill it during the second clone(), more precisely before the
fatal_signal_pending() test in copy_process(). When the parent receives
the signal, it has to destroy the embryonic process and return -EINTR to
user space. In the failure path, we have to call seccomp_filter_release()
to decrement the filter's refcount.

Initially, we called it in free_task() called from the failure path, but
the commit 3a15fb6ed92c ("seccomp: release filter after task is fully
dead") moved it to release_task() to notify user space as early as possible
that the filter is no longer used.

To keep the change and current seccomp refcount semantics, let's move
copy_seccomp() just after the signal check and add a WARN_ON_ONCE() in
free_task() for future debugging.

[0]:
unreferenced object 0xffff8880063add00 (size 256):
comm "repro_seccomp", pid 230, jiffies 4294687090 (age 9.914s)
hex dump (first 32 bytes):
01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
backtrace:
do_seccomp (./include/linux/slab.h:600 ./include/linux/slab.h:733 kernel/seccomp.c:666 kernel/seccomp.c:708 kernel/seccomp.c:1871 kernel/seccomp.c:1991)
do_syscall_64 (arch/x86/entry/common.c:50 arch/x86/entry/common.c:80)
entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:120)
unreferenced object 0xffffc90000035000 (size 4096):
comm "repro_seccomp", pid 230, jiffies 4294687090 (age 9.915s)
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
__vmalloc_node_range (mm/vmalloc.c:3226)
__vmalloc_node (mm/vmalloc.c:3261 (discriminator 4))
bpf_prog_alloc_no_stats (kernel/bpf/core.c:91)
bpf_prog_alloc (kernel/bpf/core.c:129)
bpf_prog_create_from_user (net/core/filter.c:1414)
do_seccomp (kernel/seccomp.c:671 kernel/seccomp.c:708 kernel/seccomp.c:1871 kernel/seccomp.c:1991)
do_syscall_64 (arch/x86/entry/common.c:50 arch/x86/entry/common.c:80)
entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:120)
unreferenced object 0xffff888003fa1000 (size 1024):
comm "repro_seccomp", pid 230, jiffies 4294687090 (age 9.915s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
bpf_prog_alloc_no_stats (./include/linux/slab.h:600 ./include/linux/slab.h:733 kernel/bpf/core.c:95)
bpf_prog_alloc (kernel/bpf/core.c:129)
bpf_prog_create_from_user (net/core/filter.c:1414)
do_seccomp (kernel/seccomp.c:671 kernel/seccomp.c:708 kernel/seccomp.c:1871 kernel/seccomp.c:1991)
do_syscall_64 (arch/x86/entry/common.c:50 arch/x86/entry/common.c:80)
entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:120)
unreferenced object 0xffff888006360240 (size 16):
comm "repro_seccomp", pid 230, jiffies 4294687090 (age 9.915s)
hex dump (first 16 bytes):
01 00 37 00 76 65 72 6c e0 83 01 06 80 88 ff ff ..7.verl........
backtrace:
bpf_prog_store_orig_filter (net/core/filter.c:1137)
bpf_prog_create_from_user (net/core/filter.c:1428)
do_seccomp (kernel/seccomp.c:671 kernel/seccomp.c:708 kernel/seccomp.c:1871 kernel/seccomp.c:1991)
do_syscall_64 (arch/x86/entry/common.c:50 arch/x86/entry/common.c:80)
entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:120)
unreferenced object 0xffff888
---truncated---

Affected products

VendorProductAffectedFixed
Linux Linux 5.9 5.10.180

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.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.1.4-1 —
Debian 13 linux 6.1.4-1 —
Debian 12 linux 6.1.4-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1015.17 —
Ubuntu 24.04 LTS linux-riscv +10 No fix yet —
Ubuntu 22.04 LTS linux +1 5.15.0-69.76 —
Ubuntu 22.04 LTS linux-aws 5.15.0-1033.37 —
Ubuntu 22.04 LTS linux-azure 5.15.0-1035.42 —
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1035.42.1 —
Ubuntu 22.04 LTS linux-gcp 5.15.0-1031.38 —
Ubuntu 22.04 LTS linux-gke +1 5.15.0-1030.35 —
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1017.22 —
Ubuntu 22.04 LTS linux-ibm 5.15.0-1027.30 —
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1027.32 —
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1023.23 —
Ubuntu 22.04 LTS linux-oracle 5.15.0-1032.38 —
Ubuntu 22.04 LTS linux-raspi 5.15.0-1026.28 —
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 20.04 LTS linux-aws-5.15 5.15.0-1033.37~20.04.1 —
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1035.42~20.04.1 —
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1031.38~20.04.1 —
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 20.04 LTS linux-hwe-5.15 +1 5.15.0-69.76~20.04.1 —
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1027.32~20.04.1 —
Ubuntu 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1014.14~20.04.1 —
Ubuntu 20.04 LTS linux-oracle-5.15 5.15.0-1032.38~20.04.1 —
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1030.34~20.04.1 —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1023.28 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1034.37 —
ReleasePackageFixed inAdvisory
RHEL 9 bpftool 7.0.0-284.30.1.el9_2 RHSA-2023:5069
RHEL 9 perf +48 5.14.0-284.30.1.el9_2 RHSA-2023:5069
ReleasePackageFixed inAdvisory
SLES 15 SP5 kernel-64kb +6 5.14.21-150500.55.133.1 SUSE-SU-2026:0317-1
SLES 15 SP5 kernel-default-base 5.14.21-150500.55.133.1.150500.6.65.1 SUSE-SU-2026:0317-1
SLES 15 SP4 kernel-64kb +6 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLES 15 SP4 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-1
Show 9 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP5 kernel-default-base 5.14.21-150500.55.133.1.150500.6.65.1 SUSE-SU-2026:0317-1
SLES for SAP 15 SP5 kernel-docs +4 5.14.21-150500.55.133.1 SUSE-SU-2026:0317-1
SLES for SAP 15 SP4 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-1
SLES for SAP 15 SP4 kernel-docs +4 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE Micro 5.5 kernel-default-base 5.14.21-150500.55.133.1.150500.6.65.1 SUSE-SU-2026:0317-1
SLE Micro 5.5 kernel-rt +1 5.14.21-150500.13.118.1 SUSE-SU-2026:0263-1
SLE Micro 5.5 kernel-source +1 5.14.21-150500.55.133.1 SUSE-SU-2026:0317-1
SLE Micro 5.4 kernel-default 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE Micro 5.4 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-1
SLE Micro 5.4 kernel-rt +1 5.14.21-150400.15.142.1 SUSE-SU-2026:0411-1
SLE Micro 5.3 kernel-default 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE Micro 5.3 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-1
SLE Micro 5.3 kernel-rt +1 5.14.21-150400.15.142.1 SUSE-SU-2026:0411-1
SLE Live Patching 15 SP5 kernel-default 5.14.21-150500.55.133.1 SUSE-SU-2026:0317-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_34 1-150500.11.3.1 SUSE-SU-2026:0317-1
SLE Live Patching 15 SP4 kernel-default 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE Live Patching 15 SP4 kernel-livepatch-SLE15-SP4_Update_48 1-150400.9.7.1 SUSE-SU-2026:0617-1
SLE HPC 15 SP5 kernel-64kb +5 5.14.21-150500.55.133.1 SUSE-SU-2026:0317-1
SLE HPC 15 SP5 kernel-default-base 5.14.21-150500.55.133.1.150500.6.65.1 SUSE-SU-2026:0317-1
SLE HPC 15 SP4 kernel-64kb +5 5.14.21-150400.24.194.1 SUSE-SU-2026:0617-1
SLE HPC 15 SP4 kernel-default-base 5.14.21-150400.24.194.1.150400.24.98.3 SUSE-SU-2026:0617-1

Advisories 6

References