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 perf6.12Upgrade kernel-libbpf-develUpgrade kernel6.12-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-headersUpgrade kernel-toolsUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12Upgrade kernel6.12-modules-extraUpgrade kernel-modules-extra-commonUpgrade kernel-livepatch-6.12.29-33.102Upgrade kernel-libbpf-staticUpgrade bpftoolUpgrade kernel-libbpfUpgrade kernel-tools-debuginfoUpgrade python3-perf6.12Upgrade kernel-develUpgrade python3-perf6.12-debuginfoUpgrade kernel-libbpf-debuginfoUpgrade perf6.12-debuginfoUpgrade kernel-tools-develUpgrade kernel6.12-debuginfo-common-x86_64 | Jun 24, 2025 | May 9, 2025 |
| Debian | — | Upgrade linux | May 15, 2025 | May 9, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | May 9, 2025 |
| Suse | — | Upgrade kernel-source-azureUpgrade kernel-zfcpdumpUpgrade kernel-default-extraUpgrade kernel-kvmsmall-develUpgrade kernel-macrosUpgrade kernel-azure-develUpgrade kernel-default-develUpgrade kernel-symsUpgrade kernel-docsUpgrade kernel-obs-qaUpgrade kernel-kvmsmallUpgrade kernel-azure-vdsoUpgrade kernel-64kb-develUpgrade kernel-sourceUpgrade kernel-devel-azureUpgrade kernel-64kbUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docs-htmlUpgrade kernel-develUpgrade kernel-64kb-extraUpgrade kernel-azureUpgrade kernel-source-vanillaUpgrade kernel-default-livepatchUpgrade kernel-defaultUpgrade kernel-default-vdsoUpgrade kernel-azure-extra | Dec 5, 2025 | Dec 5, 2025 |
| Ubuntu | — | Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-gke-64kUpgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-aws-fips-6.8Upgrade linux-image-generic-64kUpgrade linux-image-raspi-6.8Upgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-gke-6.8Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-raspiUpgrade linux-image-azure-fdeUpgrade linux-image-6.14.0-1007-aws-64kUpgrade linux-image-6.8.0-1046-awsUpgrade linux-image-azureUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-gcp-64kUpgrade linux-image-lowlatency-6.8Upgrade linux-image-6.14.0-1007-oracle-64kUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-6.14.0-1008-gcp-64kUpgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.14.0-22-generic-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.14.0-1007-raspiUpgrade linux-image-6.14.0-1007-awsUpgrade linux-image-gcp-fipsUpgrade linux-image-gke-64k-6.8Upgrade linux-image-virtual-6.8Upgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-oem-22.04cUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-gkeopUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-generic-64k-6.8Upgrade linux-image-aws-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-6.14.0-1007-azureUpgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-6.14.0-1008-gcpUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-xilinx-6.8Upgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-6.14.0-22-genericUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-raspi-realtimeUpgrade linux-image-lowlatencyUpgrade linux-image-azure-fips-6.8Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-gkeUpgrade linux-image-fipsUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-xilinxUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-kvmUpgrade linux-image-ibm-6.8Upgrade linux-image-awsUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-fips-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-gcp-6.8Upgrade linux-image-virtualUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-22.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oracle-64kUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-ibm-classicUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-6.14.0-1007-azure-fdeUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-ibmUpgrade linux-image-azure-lts-24.04Upgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.8.0-100-genericUpgrade linux-image-realtimeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-6.14.0-1007-oracleUpgrade linux-image-generic-6.8Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-nvidiaUpgrade linux-image-genericUpgrade linux-image-azure-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.14.0-1004-realtimeUpgrade linux-image-nvidia-64kUpgrade linux-image-gcpUpgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-intel-iotgUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-aws-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