In the Linux kernel, the following vulnerability has been resolved:
eventpoll: don't decrement ep refcount while still holding the ep mutex
Jann Horn points out that epoll is decrementing the ep refcount and then doing a
mutex_unlock(&ep->mtx);
afterwards. That's very wrong, because it can lead to a use-after-free.
That pattern is actually fine for the very last reference, because the code in question will delay the actual call to "ep_free(ep)" until after it has unlocked the mutex.
But it's wrong for the much subtler "next to last" case when somebody *else* may also be dropping their reference and free the ep while we're still using the mutex.
Note that this is true even if that other user is also using the same ep mutex: mutexes, unlike spinlocks, can not be used for object ownership, even if they guarantee mutual exclusion.
A mutex "unlock" operation is not atomic, and as one user is still accessing the mutex as part of unlocking it, another user can come in and get the now released mutex and free the data structure while the first user is still cleaning up.
See our mutex documentation in Documentation/locking/mutex-design.rst, in particular the section [1] about semantics:
"mutex_unlock() may access the mutex structure even after it has internally released the lock already - so it's not safe for another context to acquire the mutex and assume that the mutex_unlock() context is not using the structure anymore"
So if we drop our ep ref before the mutex unlock, but we weren't the last one, we may then unlock the mutex, another user comes in, drops _their_ reference and releases the 'ep' as it now has no users - all while the mutex_unlock() is still accessing it.
Fix this by simply moving the ep refcount dropping to outside the mutex: the refcount itself is atomic, and doesn't need mutex protection (that's the whole _point_ of refcounts: unlike mutexes, they are inherently about object lifetimes).
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-debug-modules-extraUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-64kUpgrade kernel-64k-devel-matchedUpgrade kernel-abi-stablelistsUpgrade kernel-modules-coreUpgrade kernelUpgrade libperfUpgrade kernel-modules-extraUpgrade kernel-zfcpdump-modulesUpgrade kernel-debug-modulesUpgrade kernel-rt-coreUpgrade kernel-rt-64k-modules-extraUpgrade kernel-64k-debug-modules-extraUpgrade kernel-64k-coreUpgrade kernel-64k-modulesUpgrade kernel-rt-64k-modules-coreUpgrade kernel-debug-develUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-modulesUpgrade kernel-debugUpgrade kernel-64k-modules-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-modules-coreUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-64k-develUpgrade kernel-rt-debug-develUpgrade kernel-debug-coreUpgrade kernel-coreUpgrade kernel-rt-64k-debug-modulesUpgrade rtlaUpgrade kernel-cross-headersUpgrade kernel-devel-matchedUpgrade kernel-headersUpgrade kernel-debug-modules-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-zfcpdump-develUpgrade kernel-rt-64k-debugUpgrade kernel-rt-64k-modulesUpgrade kernel-64k-debug-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-64k-debug-develUpgrade kernel-zfcpdumpUpgrade kernel-tools-libs-develUpgrade kernel-rt-debug-modules-coreUpgrade kernel-rt-develUpgrade kernel-develUpgrade kernel-rt-64k-coreUpgrade kernel-rtUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-64k-debug-modules-coreUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-modules-extraUpgrade kernel-toolsUpgrade kernel-rt-debug-modules-extraUpgrade python3-perfUpgrade kernel-64k-modules-extraUpgrade kernel-64k-debug-develUpgrade kernel-debug-uki-virtUpgrade kernel-tools-libsUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-modulesUpgrade kernel-rt-64k-develUpgrade kernel-rt-64kUpgrade kernel-uki-virt-addonsUpgrade kernel-uki-virtUpgrade kernel-rt-debug-coreUpgrade kernel-64k-debugUpgrade kernel-64k-debug-modulesUpgrade rvUpgrade kernel-docUpgrade perfUpgrade kernel-rt-64k-debug-coreUpgrade kernel-rt-debug | Feb 2, 2026 | Jan 26, 2026 |
| Amazon_linux_2023 | — | Upgrade python3-perf6.12-debuginfoUpgrade kernel6.12-libbpf-develUpgrade kernel6.12-debuginfoUpgrade kernel6.12-tools-debuginfoUpgrade kernel6.12-libbpfUpgrade perf6.12Upgrade kernel6.12-libbpf-staticUpgrade bpftool6.12Upgrade kernel6.12-libbpf-debuginfoUpgrade kernel-livepatch-6.12.40-63.114Upgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.12Upgrade kernel6.12-modules-extra-commonUpgrade kernel6.12-headersUpgrade kernel6.12-modules-extraUpgrade kernel6.12-debuginfo-common-aarch64Upgrade python3-perf6.12Upgrade kernel6.12-tools-develUpgrade kernel6.12-toolsUpgrade perf6.12-debuginfoUpgrade kernel6.12-develUpgrade bpftool6.12-debuginfo | Sep 9, 2025 | Jul 18, 2025 |
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Oracle_linux | — | Upgrade kernel | Jan 29, 2026 | Jul 18, 2025 |
| Redhat_linux | — | No solution existsUpgrade kernel-rtUpgrade kernel | Jul 21, 2025 | Jul 18, 2025 |
| Rocky_linux | — | Upgrade kernel-zfcpdump-develUpgrade kernel-debuginfoUpgrade kernel-modules-extra-matchedUpgrade kernel-debug-coreUpgrade kernel-debug-develUpgrade kernelUpgrade kernel-debugUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debug-uki-virtUpgrade kernel-modules-coreUpgrade kernel-devel-matchedUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-rt-modules-extraUpgrade kernel-debug-modulesUpgrade rtlaUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-rt-debug-develUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modules-coreUpgrade kernel-rt-debug-debuginfoUpgrade kernel-debug-devel-matchedUpgrade kernel-tools-libsUpgrade python3-perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-rt-coreUpgrade python3-perfUpgrade kernel-zfcpdump-modules-coreUpgrade rvUpgrade libperfUpgrade kernel-rt-debug-modules-coreUpgrade kernel-debug-debuginfoUpgrade kernel-toolsUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-uki-virt-addonsUpgrade kernel-rt-debugUpgrade kernel-rt-debug-modules-extraUpgrade kernel-coreUpgrade kernel-develUpgrade perf-debuginfoUpgrade kernel-rtUpgrade kernel-rt-debuginfoUpgrade kernel-tools-libs-develUpgrade kernel-rt-modules-coreUpgrade kernel-rt-develUpgrade kernel-debuginfo-common-s390xUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-zfcpdumpUpgrade kernel-rt-modulesUpgrade libperf-debuginfoUpgrade kernel-zfcpdump-modulesUpgrade kernel-modulesUpgrade perfUpgrade kernel-uki-virtUpgrade kernel-modules-extra | Feb 9, 2026 | Feb 8, 2026 |
| Suse | — | Upgrade kernel-debug-develUpgrade dtb-caviumUpgrade gfs2-kmp-defaultUpgrade kernel-64kb-extraUpgrade kernel-docs-htmlUpgrade dtb-sprdUpgrade dtb-xilinxUpgrade dtb-broadcomUpgrade kernel-default-optionalUpgrade kernel-devel-rtUpgrade dtb-amdUpgrade kernel-develUpgrade kernel-rt-livepatchUpgrade reiserfs-kmp-defaultUpgrade kernel-symsUpgrade ocfs2-kmp-azureUpgrade dtb-allwinnerUpgrade dlm-kmp-rtUpgrade gfs2-kmp-64kbUpgrade kernel-default-develUpgrade kernel-docsUpgrade dtb-marvellUpgrade dtb-mediatekUpgrade dtb-freescaleUpgrade dtb-socionextUpgrade kselftests-kmp-rtUpgrade cluster-md-kmp-rtUpgrade dtb-amazonUpgrade kernel-default-baseUpgrade kernel-64kbUpgrade dlm-kmp-defaultUpgrade kernel-debugUpgrade dtb-renesasUpgrade kernel-rt_debugUpgrade ocfs2-kmp-64kbUpgrade dtb-hisiliconUpgrade kernel-rt-develUpgrade dtb-alteraUpgrade kernel-default-livepatch-develUpgrade dtb-appleUpgrade gfs2-kmp-azureUpgrade kernel-64kb-optionalUpgrade kernel-source-vanillaUpgrade kselftests-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade kernel-azure-extraUpgrade ocfs2-kmp-defaultUpgrade cluster-md-kmp-64kbUpgrade kernel-default-livepatchUpgrade kernel-defaultUpgrade kernel-64kb-develUpgrade reiserfs-kmp-azureUpgrade dtb-qcomUpgrade kernel-rt-vdsoUpgrade kernel-azureUpgrade kernel-default-extraUpgrade kernel-rt_debug-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-kvmsmallUpgrade kernel-rt_debug-vdsoUpgrade dlm-kmp-azureUpgrade dtb-lgUpgrade kernel-source-rtUpgrade cluster-md-kmp-azureUpgrade dtb-amlogicUpgrade kernel-azure-optionalUpgrade gfs2-kmp-rtUpgrade dtb-rockchipUpgrade kselftests-kmp-azureUpgrade kernel-zfcpdumpUpgrade kernel-rtUpgrade kernel-kvmsmall-develUpgrade kernel-source-azureUpgrade kernel-default-vdsoUpgrade ocfs2-kmp-rtUpgrade kselftests-kmp-64kbUpgrade dtb-nvidiaUpgrade dtb-exynosUpgrade cluster-md-kmp-defaultUpgrade kernel-sourceUpgrade kernel-rt-extraUpgrade kernel-obs-buildUpgrade kernel-macrosUpgrade kernel-default-base-rebuildUpgrade kernel-debug-vdsoUpgrade dtb-armUpgrade kernel-obs-qaUpgrade kernel-syms-azureUpgrade kernel-azure-vdsoUpgrade reiserfs-kmp-64kbUpgrade kernel-syms-rtUpgrade kernel-rt-optionalUpgrade kernel-devel-azureUpgrade kernel-azure-develUpgrade dtb-apmUpgrade dlm-kmp-64kb | Dec 5, 2025 | Aug 18, 2025 |
| Ubuntu | — | Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oracle-6.14Upgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-aws-6.14Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-virtual-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-gcp-6.14Upgrade linux-image-gcp-64kUpgrade linux-image-awsUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gkeUpgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-6.14.0-1016-realtimeUpgrade linux-image-raspi-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-generic-64k-6.14Upgrade linux-image-oem-24.04Upgrade linux-image-raspi-6.14Upgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-kvmUpgrade linux-image-azure-6.14Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-aws-64k-6.14Upgrade linux-image-6.14.0-1017-oracle-64kUpgrade linux-image-gke-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-virtual-6.14Upgrade linux-image-gcp-fipsUpgrade linux-image-oracle-6.8Upgrade linux-image-gke-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-realtime-6.14Upgrade linux-image-aws-64kUpgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-generic-6.14Upgrade linux-image-azureUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.14.0-1020-gcp-64kUpgrade linux-image-azure-6.8Upgrade linux-image-6.14.0-1018-raspiUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-raspiUpgrade linux-image-gcp-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-realtimeUpgrade linux-image-6.14.0-36-genericUpgrade linux-image-gcp-64k-6.14Upgrade linux-image-aws-fips-6.8Upgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1046-awsUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.14.0-1017-awsUpgrade linux-image-6.14.0-1017-azureUpgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-gke-64k-6.8Upgrade linux-image-oracleUpgrade linux-image-lowlatency-6.8Upgrade linux-image-virtualUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oracle-64kUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-generic-64k-6.8Upgrade linux-image-oracle-64k-6.14Upgrade linux-image-azure-fips-6.8Upgrade linux-image-nvidiaUpgrade linux-image-generic-64kUpgrade linux-image-generic-6.8Upgrade linux-image-oem-22.04bUpgrade linux-image-ibm-6.8Upgrade linux-image-fips-6.8Upgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-6.14.0-36-generic-64kUpgrade linux-image-oem-22.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-fipsUpgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-6.14.0-1017-aws-64kUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-azure-lts-24.04Upgrade linux-image-generic-lpaeUpgrade linux-image-gcpUpgrade linux-image-ibmUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-xilinxUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-aws-6.8Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-oem-6.14Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-6.14.0-1017-oracleUpgrade linux-image-6.14.0-1020-gcpUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-6.14.0-1016-oemUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-oem-22.04cUpgrade linux-image-lowlatency-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-genericUpgrade linux-image-6.8.0-100-genericUpgrade linux-image-oem-22.04aUpgrade linux-image-raspi-realtimeUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-64k-6.8 | Jul 28, 2025 | Jul 18, 2025 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub