In the Linux kernel, the following vulnerability has been resolved:
perf/core: Fix WARN_ON(!ctx) in __free_event() for partial init
Move the get_ctx(child_ctx) call and the child_event->ctx assignment to occur immediately after the child event is allocated. Ensure that child_event->ctx is non-NULL before any subsequent error path within inherit_event calls free_event(), satisfying the assumptions of the cleanup code.
Details:
There's no clear Fixes tag, because this bug is a side-effect of multiple interacting commits over time (up to 15 years old), not a single regression.
The code initially incremented refcount then assigned context immediately after the child_event was created. Later, an early validity check for child_event was added before the refcount/assignment. Even later, a WARN_ON_ONCE() cleanup check was added, assuming event->ctx is valid if the pmu_ctx is valid. The problem is that the WARN_ON_ONCE() could trigger after the initial check passed but before child_event->ctx was assigned, violating its precondition. The solution is to assign child_event->ctx right after its initial validation. This ensures the context exists for any subsequent checks or cleanup routines, resolving the WARN_ON_ONCE().
To resolve it, defer the refcount update and child_event->ctx assignment directly after child_event->pmu_ctx is set but before checking if the parent event is orphaned. The cleanup routine depends on event->pmu_ctx being non-NULL before it verifies event->ctx is non-NULL. This also maintains the author's original intent of passing in child_ctx to find_get_pmu_context before its refcount/assignment.
[ mingo: Expanded the changelog from another email by Gabriel Shahrouzi. ]
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-libbpf-staticUpgrade kernel6.12Upgrade kernel-modules-extra-commonUpgrade kernel-livepatch-6.12.29-33.102Upgrade kernel-toolsUpgrade kernel-headersUpgrade perf6.12Upgrade kernel6.12-debuginfoUpgrade bpftool-debuginfoUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-libbpf-develUpgrade kernel6.12-modules-extraUpgrade python3-perf6.12Upgrade bpftoolUpgrade kernel-tools-debuginfoUpgrade kernel-libbpfUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel-tools-develUpgrade python3-perf6.12-debuginfoUpgrade kernel-develUpgrade perf6.12-debuginfoUpgrade kernel-libbpf-debuginfo | Jun 24, 2025 | May 9, 2025 |
| Debian | — | Upgrade linuxNo solution exists | May 15, 2025 | May 9, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | May 9, 2025 |
| Suse | — | Upgrade kernel-default-extraUpgrade kernel-kvmsmall-develUpgrade kernel-zfcpdumpUpgrade kernel-kvmsmallUpgrade kernel-macrosUpgrade kernel-sourceUpgrade kernel-source-azureUpgrade kernel-64kbUpgrade kernel-devel-azureUpgrade kernel-azure-vdsoUpgrade kernel-obs-qaUpgrade kernel-64kb-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-azure-develUpgrade kernel-symsUpgrade kernel-default-develUpgrade kernel-docsUpgrade kernel-64kb-extraUpgrade kernel-defaultUpgrade kernel-default-livepatchUpgrade kernel-azureUpgrade kernel-source-vanillaUpgrade kernel-develUpgrade kernel-docs-htmlUpgrade kernel-azure-extraUpgrade kernel-default-vdso | Dec 5, 2025 | Dec 5, 2025 |
| Ubuntu | — | Upgrade linux-image-raspi-6.8Upgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-xilinx-6.8Upgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-6.14.0-1007-awsUpgrade linux-image-generic-64k-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-6.14.0-22-generic-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-6.14.0-1007-raspiUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-azureUpgrade linux-image-azure-fdeUpgrade linux-image-realtime-6.8.1Upgrade linux-image-6.14.0-1007-aws-64kUpgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-virtual-6.8Upgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-raspiUpgrade linux-image-gkeopUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-oem-22.04cUpgrade linux-image-aws-lts-24.04Upgrade linux-image-aws-6.8Upgrade linux-image-6.8.0-1046-awsUpgrade linux-image-6.14.0-1008-gcp-64kUpgrade linux-image-gcp-64kUpgrade linux-image-aws-fips-6.8Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.14.0-1007-oracle-64kUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-gcp-fipsUpgrade linux-image-oracle-6.8Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-gke-64k-6.8Upgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-gke-64kUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-6.14.0-1008-gcpUpgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-generic-64kUpgrade linux-image-6.14.0-1007-azureUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-gcp-6.8Upgrade linux-image-virtualUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-6.8.0-100-genericUpgrade linux-image-realtimeUpgrade linux-image-oracleUpgrade linux-image-azure-lts-24.04Upgrade linux-image-awsUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-kvmUpgrade linux-image-xilinxUpgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-ibm-classicUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.14.0-1007-azure-fdeUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oracle-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-6.14.0-1007-oracleUpgrade linux-image-ibm-6.8Upgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-generic-6.8Upgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-fipsUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-lowlatencyUpgrade linux-image-genericUpgrade linux-image-azure-fips-6.8Upgrade linux-image-azure-6.8Upgrade linux-image-6.8.0-100-fipsUpgrade linux-image-6.14.0-1004-realtimeUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-22.04Upgrade linux-image-generic-lpaeUpgrade linux-image-lowlatency-64kUpgrade linux-image-intel-iotgUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-gcpUpgrade linux-image-gkeUpgrade linux-image-aws-64kUpgrade linux-image-6.14.0-22-genericUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-nvidiaUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-ibmUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.8.0-1046-nvidia-64k | Jun 26, 2025 | May 9, 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