---
id: CVE-2022-49784
title: 'perf/x86/amd/uncore: Fix memory leak for events array'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  perf/x86/amd/uncore: Fix memory leak for events array

  When a CPU comes online, the per-CPU NB and LLC uncore contexts are
  freed but not the events array within the con…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 39621c5808f5dda75d03dc4b2d4d2b13a5a1c34b <
    f75be9885d49e3717de962345c4572ddab52b178
  - >-
    Linux >= 39621c5808f5dda75d03dc4b2d4d2b13a5a1c34b <
    bdfe34597139cfcecd47a2eb97fea44d77157491
  - Linux 6.0
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-05T19:47:52.651595Z'
published: '2025-05-01'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T19:49:48.402Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2022-49784'
references:
  - url: 'https://git.kernel.org/stable/c/f75be9885d49e3717de962345c4572ddab52b178'
  - url: 'https://git.kernel.org/stable/c/bdfe34597139cfcecd47a2eb97fea44d77157491'
tags:
  - cve.org
epss: 0.0017
epssPercentile: 0.06464
ingestedAt: '2026-11-05T22:38:31.592Z'
---

## Overview

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

perf/x86/amd/uncore: Fix memory leak for events array

When a CPU comes online, the per-CPU NB and LLC uncore contexts are
freed but not the events array within the context structure. This
causes a memory leak as identified by the kmemleak detector.

  [...]
  unreferenced object 0xffff8c5944b8e320 (size 32):
    comm "swapper/0", pid 1, jiffies 4294670387 (age 151.072s)
    hex dump (first 32 bytes):
      00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    backtrace:
      [<000000000759fb79>] amd_uncore_cpu_up_prepare+0xaf/0x230
      [<00000000ddc9e126>] cpuhp_invoke_callback+0x2cf/0x470
      [<0000000093e727d4>] cpuhp_issue_call+0x14d/0x170
      [<0000000045464d54>] __cpuhp_setup_state_cpuslocked+0x11e/0x330
      [<0000000069f67cbd>] __cpuhp_setup_state+0x6b/0x110
      [<0000000015365e0f>] amd_uncore_init+0x260/0x321
      [<00000000089152d2>] do_one_initcall+0x3f/0x1f0
      [<000000002d0bd18d>] kernel_init_freeable+0x1ca/0x212
      [<0000000030be8dde>] kernel_init+0x11/0x120
      [<0000000059709e59>] ret_from_fork+0x22/0x30
  unreferenced object 0xffff8c5944b8dd40 (size 64):
    comm "swapper/0", pid 1, jiffies 4294670387 (age 151.072s)
    hex dump (first 32 bytes):
      00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    backtrace:
      [<00000000306efe8b>] amd_uncore_cpu_up_prepare+0x183/0x230
      [<00000000ddc9e126>] cpuhp_invoke_callback+0x2cf/0x470
      [<0000000093e727d4>] cpuhp_issue_call+0x14d/0x170
      [<0000000045464d54>] __cpuhp_setup_state_cpuslocked+0x11e/0x330
      [<0000000069f67cbd>] __cpuhp_setup_state+0x6b/0x110
      [<0000000015365e0f>] amd_uncore_init+0x260/0x321
      [<00000000089152d2>] do_one_initcall+0x3f/0x1f0
      [<000000002d0bd18d>] kernel_init_freeable+0x1ca/0x212
      [<0000000030be8dde>] kernel_init+0x11/0x120
      [<0000000059709e59>] ret_from_fork+0x22/0x30
  [...]

Fix the problem by freeing the events array before freeing the uncore
context.

## Affected

- `Linux >= 39621c5808f5dda75d03dc4b2d4d2b13a5a1c34b < f75be9885d49e3717de962345c4572ddab52b178`
- `Linux >= 39621c5808f5dda75d03dc4b2d4d2b13a5a1c34b < bdfe34597139cfcecd47a2eb97fea44d77157491`
- `Linux 6.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
