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