{"api_version":"1","generated_at":"2026-11-10T03:52:53+00:00","cve":"CVE-2026-99187","urls":{"html":"https://cve.report/CVE-2026-99187","api":"https://cve.report/api/cve/CVE-2026-99187.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-99187","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-99187"},"summary":{"title":"perf: Fix perf_pmu_migrate_context() leaving events behind","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nperf: Fix perf_pmu_migrate_context() leaving events behind\n\n__perf_pmu_remove() walks the group leaders of a CPU and PMU with\nperf_event_groups_for_cpu_pmu(), removing each one as it goes.\nperf_remove_from_context() takes the leader out of the groups rbtree,\nafter which rb_next() on that node returns NULL, prematurely ending the\nwalk. Other groups stay behind in the source context.\n\nOn CPU hotplug, they are then torn down with the dying CPU. They keep\nrunning until teardown, while the PMU's interrupt and migrated events\nare on a new CPU, which drivers rely on never happening.\n\nWalk ctx->event_list instead and pick out the PMU's events by their\npmu_ctx.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-10-28 11:17:39","updated_at":"2026-10-30 13:21:52"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/3eb08f09bfb364051f51316da873c3bd51a839ef","name":"https://git.kernel.org/stable/c/3eb08f09bfb364051f51316da873c3bd51a839ef","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/e76b36b4be7160eaa14b416681e548b125702395","name":"https://git.kernel.org/stable/c/e76b36b4be7160eaa14b416681e548b125702395","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/3caf006eb731e88cbb33fb5b7d1f2fdb23712bc7","name":"https://git.kernel.org/stable/c/3caf006eb731e88cbb33fb5b7d1f2fdb23712bc7","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/f5f0028764de322a3d04eda0d3b6389ca9847446","name":"https://git.kernel.org/stable/c/f5f0028764de322a3d04eda0d3b6389ca9847446","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/d4002e954c612dfc7e3fb5549e4a188ea281fe35","name":"https://git.kernel.org/stable/c/d4002e954c612dfc7e3fb5549e4a188ea281fe35","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-99187","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99187","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected bd27568117664b8b3e259721393df420ed51f57b 3caf006eb731e88cbb33fb5b7d1f2fdb23712bc7 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected bd27568117664b8b3e259721393df420ed51f57b d4002e954c612dfc7e3fb5549e4a188ea281fe35 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected bd27568117664b8b3e259721393df420ed51f57b 3eb08f09bfb364051f51316da873c3bd51a839ef git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected bd27568117664b8b3e259721393df420ed51f57b f5f0028764de322a3d04eda0d3b6389ca9847446 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected bd27568117664b8b3e259721393df420ed51f57b e76b36b4be7160eaa14b416681e548b125702395 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.2","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.2 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.161 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.115 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.59 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.13 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"99187","cve":"CVE-2026-99187","epss":"0.001740000","percentile":"0.068700000","score_date":"2026-11-01","updated_at":"2026-11-02 00:05:55"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["kernel/events/core.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"3caf006eb731e88cbb33fb5b7d1f2fdb23712bc7","status":"affected","version":"bd27568117664b8b3e259721393df420ed51f57b","versionType":"git"},{"lessThan":"d4002e954c612dfc7e3fb5549e4a188ea281fe35","status":"affected","version":"bd27568117664b8b3e259721393df420ed51f57b","versionType":"git"},{"lessThan":"3eb08f09bfb364051f51316da873c3bd51a839ef","status":"affected","version":"bd27568117664b8b3e259721393df420ed51f57b","versionType":"git"},{"lessThan":"f5f0028764de322a3d04eda0d3b6389ca9847446","status":"affected","version":"bd27568117664b8b3e259721393df420ed51f57b","versionType":"git"},{"lessThan":"e76b36b4be7160eaa14b416681e548b125702395","status":"affected","version":"bd27568117664b8b3e259721393df420ed51f57b","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["kernel/events/core.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.2"},{"lessThan":"6.2","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.161","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.115","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.59","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.13","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.161","versionStartIncluding":"6.2","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.115","versionStartIncluding":"6.2","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.59","versionStartIncluding":"6.2","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.13","versionStartIncluding":"6.2","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3","versionStartIncluding":"6.2","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nperf: Fix perf_pmu_migrate_context() leaving events behind\n\n__perf_pmu_remove() walks the group leaders of a CPU and PMU with\nperf_event_groups_for_cpu_pmu(), removing each one as it goes.\nperf_remove_from_context() takes the leader out of the groups rbtree,\nafter which rb_next() on that node returns NULL, prematurely ending the\nwalk. Other groups stay behind in the source context.\n\nOn CPU hotplug, they are then torn down with the dying CPU. They keep\nrunning until teardown, while the PMU's interrupt and migrated events\nare on a new CPU, which drivers rely on never happening.\n\nWalk ctx->event_list instead and pick out the PMU's events by their\npmu_ctx."}],"providerMetadata":{"dateUpdated":"2026-10-30T12:42:46.871Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/3caf006eb731e88cbb33fb5b7d1f2fdb23712bc7"},{"url":"https://git.kernel.org/stable/c/d4002e954c612dfc7e3fb5549e4a188ea281fe35"},{"url":"https://git.kernel.org/stable/c/3eb08f09bfb364051f51316da873c3bd51a839ef"},{"url":"https://git.kernel.org/stable/c/f5f0028764de322a3d04eda0d3b6389ca9847446"},{"url":"https://git.kernel.org/stable/c/e76b36b4be7160eaa14b416681e548b125702395"}],"title":"perf: Fix perf_pmu_migrate_context() leaving events behind","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-99187","datePublished":"2026-10-28T10:35:44.813Z","dateReserved":"2026-09-25T10:25:14.400Z","dateUpdated":"2026-10-30T12:42:46.871Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-28 11:17:39","lastModifiedDate":"2026-10-30 13:21:52","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"99187","Ordinal":"1","Title":"perf: Fix perf_pmu_migrate_context() leaving events behind","CVE":"CVE-2026-99187","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"99187","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nperf: Fix perf_pmu_migrate_context() leaving events behind\n\n__perf_pmu_remove() walks the group leaders of a CPU and PMU with\nperf_event_groups_for_cpu_pmu(), removing each one as it goes.\nperf_remove_from_context() takes the leader out of the groups rbtree,\nafter which rb_next() on that node returns NULL, prematurely ending the\nwalk. Other groups stay behind in the source context.\n\nOn CPU hotplug, they are then torn down with the dying CPU. They keep\nrunning until teardown, while the PMU's interrupt and migrated events\nare on a new CPU, which drivers rely on never happening.\n\nWalk ctx->event_list instead and pick out the PMU's events by their\npmu_ctx.","Type":"Description","Title":"perf: Fix perf_pmu_migrate_context() leaving events behind"}]}}}