All vulnerabilities
CVE-2026-98552

Linux: perf/core: Fix a refcount leak in attach_perf_ctx_data()

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.20%Chance of exploitation activity in the next 30 days, higher than 9% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in23250517cd475367653f1e99396967f54c6f1b7cAlso 5286d4eb5cd7e10d7d93c3cc596e18bc8ad80f72CVE List
Published18 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 23250517cd475367653f1e99396967f54c6f1b7cLinuxCVE List
  • 5286d4eb5cd7e10d7d93c3cc596e18bc8ad80f72LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

In the Linux kernel, the following vulnerability has been resolved:

perf/core: Fix a refcount leak in attach_perf_ctx_data()

The attach_perf_ctx_data() can race on global and !global cases. The global case is protected by global_ctx_data_rwsem and shares a single reference count using perf_ctx_data.global field.

But when it races with !global case, it may miss to set the global field and result in a reference count leak.

CPU1 CPU2 ---------------------------------------------------------------- attach_task_ctx_data(.global=1) attach_task_ctx_data(.global=0) cd1 = alloc_perf_ctx_data(); cd2 = alloc_perf_ctx_data(); // { .global = 0, .refcount = 1 };

try_cmpxchg(); // success, // task->perf_ctx_data = cd2 try_cmpxhg(); // fail; old = cd2 refcount_inc_not_zero(&old->refcount); // success // old.refcount = 2 free_perf_ctx_data(cd1);

Then later detach_global_ctx_data() will see the data but it's not marked as global, so it won't call detach_task_ctx_data().

Text from CVE List

Affected versions 8

  • Linuxaffected: 506e64e710ff9573fd2b86686528762b7901b5e4 before 23250517cd475367653f1e99396967f54c6f1b7cCVE List
  • Linuxaffected: 506e64e710ff9573fd2b86686528762b7901b5e4 before 5286d4eb5cd7e10d7d93c3cc596e18bc8ad80f72CVE List
  • Linuxaffected: 506e64e710ff9573fd2b86686528762b7901b5e4 before cca4980630b3c7a85f53cb43c6018184ce5d4e37CVE List
  • Linuxaffected: 6.15CVE List
  • Linuxunaffected: all versions before 6.15CVE List
  • Linuxunaffected: 6.18.55 through 6.18.*CVE List
  • Linuxunaffected: 7.2.9 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 3