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