Description
In the Linux kernel, the following vulnerability has been resolved: perf: Make sure to use pmu_ctx->pmu for groups Oliver reported that x86_pmu_del() ended up doing an out-of-bound memory access when group_sched_in() fails and needs to roll back. This *should* be handled by the transaction callbacks, but he found that when the group leader is a software event, the transaction handlers of the wrong PMU are used. Despite the move_group case in perf_event_open() and group_sched_in() using pmu_ctx->pmu. Turns out, inherit uses event->pmu to clone the events, effectively undoing the move_group case for all inherited contexts. Fix this by also making inherit use pmu_ctx->pmu, ensuring all inherited counters end up in the same pmu context. Similarly, __perf_event_read() should use equally use pmu_ctx->pmu for the group case.
Product status
bd27568117664b8b3e259721393df420ed51f57b (git) before 656f35b463995bee024d948440128230aacd81e1
bd27568117664b8b3e259721393df420ed51f57b (git) before 3a696e84a8b1fafdd774bb30d62919faf844d9e4
bd27568117664b8b3e259721393df420ed51f57b (git) before 35f7914e54fe7f13654c22ee045b05e4b6d8062b
bd27568117664b8b3e259721393df420ed51f57b (git) before 4c759446046500a1a6785b25725725c3ff087ace
bd27568117664b8b3e259721393df420ed51f57b (git) before 4b9ce671960627b2505b3f64742544ae9801df97
6.2
Any version before 6.2
6.6.131 (semver)
6.12.80 (semver)
6.18.21 (semver)
6.19.11 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/656f35b463995bee024d948440128230aacd81e1
git.kernel.org/...c/3a696e84a8b1fafdd774bb30d62919faf844d9e4
git.kernel.org/...c/35f7914e54fe7f13654c22ee045b05e4b6d8062b
git.kernel.org/...c/4c759446046500a1a6785b25725725c3ff087ace
git.kernel.org/...c/4b9ce671960627b2505b3f64742544ae9801df97