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