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).
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-develUpgrade kernel-rt-debug-modules-coreUpgrade kernel-rt-develUpgrade kernel-rtUpgrade kernel-rt-debug-modules-extraUpgrade python3-perfUpgrade kernel-zfcpdumpUpgrade kernel-rt-64k-debug-coreUpgrade kernel-toolsUpgrade kernel-rt-debugUpgrade kernel-uki-virtUpgrade perfUpgrade kernel-rt-modules-extraUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-tools-libs-develUpgrade kernel-uki-virt-addonsUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-64kUpgrade kernel-tools-libsUpgrade kernel-rt-64k-develUpgrade kernel-rt-64k-coreUpgrade kernel-64k-debug-modulesUpgrade kernel-docUpgrade kernel-64k-debug-modules-coreUpgrade kernel-zfcpdump-devel-matchedUpgrade rvUpgrade kernel-64k-modules-extraUpgrade kernel-debug-uki-virtUpgrade kernel-rt-modulesUpgrade kernel-rt-debug-coreUpgrade kernel-64k-debug-develUpgrade kernel-rt-64k-debug-develUpgrade kernel-64k-debugUpgrade rtlaUpgrade kernel-64k-modules-coreUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-devel-matchedUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-headersUpgrade kernel-rt-64k-debugUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-modulesUpgrade kernel-64k-develUpgrade kernel-rt-debug-develUpgrade kernel-rt-64k-modulesUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-abi-stablelistsUpgrade kernel-debug-coreUpgrade kernel-64kUpgrade kernel-debug-modules-coreUpgrade kernel-cross-headersUpgrade kernel-rt-64k-modules-extraUpgrade kernel-64k-devel-matchedUpgrade kernelUpgrade kernel-coreUpgrade kernel-rt-64k-debug-modulesUpgrade kernel-debug-develUpgrade kernel-rt-64k-modules-coreUpgrade kernel-zfcpdump-modulesUpgrade kernel-64k-coreUpgrade kernel-debug-modulesUpgrade kernel-rt-coreUpgrade kernel-modules-extraUpgrade kernel-zfcpdump-develUpgrade kernel-64k-modulesUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-modules-coreUpgrade kernel-debug-modules-extraUpgrade kernel-debugUpgrade kernel-64k-debug-coreUpgrade kernel-64k-debug-modules-extraUpgrade libperfUpgrade kernel-modules-core | Feb 2, 2026 | Jan 26, 2026 |
| Amazon_linux_2023 | — | Upgrade kernel6.12-debuginfoUpgrade kernel6.12-tools-debuginfoUpgrade bpftool6.12Upgrade kernel6.12-libbpf-develUpgrade kernel6.12-libbpf-staticUpgrade python3-perf6.12-debuginfoUpgrade perf6.12Upgrade kernel6.12-libbpfUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.12-modules-extra-commonUpgrade kernel6.12-headersUpgrade kernel-livepatch-6.12.40-63.114Upgrade kernel6.12-tools-develUpgrade kernel6.12-toolsUpgrade python3-perf6.12Upgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12-modules-extraUpgrade kernel6.12Upgrade bpftool6.12-debuginfoUpgrade kernel6.12-develUpgrade perf6.12-debuginfoUpgrade kernel6.12-libbpf-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 kernelUpgrade kernel-rt | Jul 21, 2025 | Jul 18, 2025 |
| Rocky_linux | — | Upgrade python3-perfUpgrade kernel-rt-debug-debuginfoUpgrade kernel-debugUpgrade kernel-modules-coreUpgrade kernel-tools-libsUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-rt-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-debug-coreUpgrade kernel-debug-develUpgrade kernel-modules-extra-matchedUpgrade kernel-zfcpdump-develUpgrade kernel-zfcpdump-debuginfoUpgrade python3-perf-debuginfoUpgrade rtlaUpgrade kernelUpgrade kernel-debuginfoUpgrade kernel-rt-modules-extraUpgrade kernel-devel-matchedUpgrade kernel-rt-debug-develUpgrade kernel-debug-uki-virtUpgrade kernel-debug-modules-coreUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modulesUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-tools-debuginfoUpgrade kernel-rt-debuginfoUpgrade kernel-develUpgrade perf-debuginfoUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rtUpgrade kernel-debuginfo-common-s390xUpgrade kernel-tools-libs-develUpgrade kernel-rt-modules-coreUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-rt-develUpgrade kernel-rt-debugUpgrade rvUpgrade libperfUpgrade libperf-debuginfoUpgrade kernel-zfcpdump-modulesUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-modulesUpgrade kernel-modulesUpgrade kernel-zfcpdumpUpgrade kernel-zfcpdump-coreUpgrade kernel-uki-virt-addonsUpgrade kernel-rt-debug-modules-coreUpgrade perfUpgrade kernel-uki-virtUpgrade kernel-modules-extraUpgrade kernel-toolsUpgrade kernel-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-modules-extraUpgrade kernel-debug-debuginfo | Feb 9, 2026 | Feb 8, 2026 |
| Suse | — | Upgrade ocfs2-kmp-azureUpgrade dtb-allwinnerUpgrade kernel-rt-develUpgrade kernel-debug-develUpgrade gfs2-kmp-64kbUpgrade kernel-64kb-optionalUpgrade kernel-default-livepatch-develUpgrade kernel-symsUpgrade dlm-kmp-rtUpgrade gfs2-kmp-azureUpgrade dlm-kmp-defaultUpgrade dtb-alteraUpgrade dtb-renesasUpgrade kselftests-kmp-rtUpgrade dtb-appleUpgrade kernel-defaultUpgrade kernel-debugUpgrade kselftests-kmp-defaultUpgrade kernel-64kbUpgrade kernel-source-vanillaUpgrade kernel-rt_debugUpgrade cluster-md-kmp-64kbUpgrade dtb-hisiliconUpgrade kernel-64kb-develUpgrade kernel-default-livepatchUpgrade ocfs2-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade kernel-default-optionalUpgrade kernel-develUpgrade kernel-rt-livepatchUpgrade kernel-64kb-extraUpgrade gfs2-kmp-defaultUpgrade dtb-sprdUpgrade dtb-xilinxUpgrade kernel-devel-rtUpgrade kernel-docs-htmlUpgrade cluster-md-kmp-rtUpgrade dtb-socionextUpgrade ocfs2-kmp-64kbUpgrade dtb-caviumUpgrade kernel-default-baseUpgrade kernel-default-develUpgrade kernel-docsUpgrade reiserfs-kmp-defaultUpgrade dtb-freescaleUpgrade dtb-amazonUpgrade kernel-azure-extraUpgrade dtb-marvellUpgrade dtb-mediatekUpgrade dtb-amdUpgrade dtb-broadcomUpgrade cluster-md-kmp-defaultUpgrade kernel-azure-develUpgrade kernel-rt-optionalUpgrade kernel-azure-optionalUpgrade gfs2-kmp-rtUpgrade kernel-default-extraUpgrade dtb-apmUpgrade kernel-azure-vdsoUpgrade kernel-syms-azureUpgrade kernel-obs-qaUpgrade kernel-sourceUpgrade kselftests-kmp-azureUpgrade kernel-kvmsmallUpgrade reiserfs-kmp-azureUpgrade kernel-azureUpgrade dtb-qcomUpgrade kernel-rt-vdsoUpgrade dtb-lgUpgrade dlm-kmp-azureUpgrade kernel-rt-extraUpgrade kernel-macrosUpgrade kernel-default-base-rebuildUpgrade kernel-debug-vdsoUpgrade kernel-rt_debug-vdsoUpgrade kernel-obs-buildUpgrade dtb-armUpgrade ocfs2-kmp-rtUpgrade dlm-kmp-64kbUpgrade kernel-rt-livepatch-develUpgrade dtb-nvidiaUpgrade dtb-rockchipUpgrade dtb-amlogicUpgrade kernel-rtUpgrade kernel-kvmsmall-develUpgrade cluster-md-kmp-azureUpgrade kernel-source-azureUpgrade kernel-default-vdsoUpgrade dtb-exynosUpgrade kernel-kvmsmall-vdsoUpgrade kernel-source-rtUpgrade kernel-rt_debug-develUpgrade kernel-zfcpdumpUpgrade kselftests-kmp-64kbUpgrade kernel-devel-azureUpgrade reiserfs-kmp-64kbUpgrade kernel-syms-rt | Dec 5, 2025 | Aug 18, 2025 |
| Ubuntu | — | Upgrade linux-image-fipsUpgrade linux-image-oem-22.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-gkeopUpgrade linux-image-aws-64k-6.8Upgrade linux-image-oracle-64kUpgrade linux-image-ibm-classicUpgrade linux-image-lowlatencyUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-genericUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-6.14.0-1017-oracleUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidiaUpgrade linux-image-gkeop-6.8Upgrade linux-image-oracle-64k-6.14Upgrade linux-image-6.8.0-100-genericUpgrade linux-image-azure-lts-24.04Upgrade linux-image-virtualUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-azure-fips-6.8Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-azure-fipsUpgrade linux-image-generic-6.8Upgrade linux-image-generic-64kUpgrade linux-image-gcpUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-xilinxUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-fips-6.8Upgrade linux-image-6.14.0-36-generic-64kUpgrade linux-image-generic-64k-6.8Upgrade linux-image-6.8.0-1046-azureUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-ibm-6.8Upgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-raspi-realtimeUpgrade linux-image-oem-24.04aUpgrade linux-image-6.14.0-1016-oemUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-ibmUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-6.14.0-1017-aws-64kUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-aws-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-6.14Upgrade linux-image-6.14.0-1020-gcpUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-kvmUpgrade linux-image-virtual-6.8Upgrade linux-image-awsUpgrade linux-image-6.14.0-1018-raspiUpgrade linux-image-oracleUpgrade linux-image-xilinx-6.8Upgrade linux-image-realtime-6.14Upgrade linux-image-gkeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-gcp-6.14Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-azureUpgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-realtimeUpgrade linux-image-nvidia-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-generic-6.14Upgrade linux-image-gcp-64k-6.14Upgrade linux-image-azure-6.8Upgrade linux-image-aws-64kUpgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-raspiUpgrade linux-image-oem-22.04dUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-raspi-6.14Upgrade linux-image-oracle-6.14Upgrade linux-image-6.8.0-1046-awsUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-6.14.0-1017-azureUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-aws-fips-6.8Upgrade linux-image-6.14.0-1017-awsUpgrade linux-image-realtime-6.8.1Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-gcp-fipsUpgrade linux-image-aws-6.14Upgrade linux-image-6.14.0-1017-oracle-64kUpgrade linux-image-oem-24.04Upgrade linux-image-6.14.0-1016-realtimeUpgrade linux-image-raspi-6.8Upgrade linux-image-generic-64k-6.14Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-azure-6.14Upgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-gcp-6.8Upgrade linux-image-6.14.0-1020-gcp-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-lowlatency-6.8Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.14.0-36-genericUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-virtual-6.14Upgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-gke-6.8Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-aws-64k-6.14Upgrade linux-image-gke-64kUpgrade linux-image-nvidia-64k | Jul 28, 2025 | Jul 18, 2025 |
Prioritise with Active Threat Intelligence
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