---
id: CVE-2022-50269
title: 'drm/vkms: Fix memory leak in vkms_init()'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  drm/vkms: Fix memory leak in vkms_init()

  A memory leak was reported after the vkms module install failed.

  unreferenced object 0xffff88810bc28520 (size 16):
    comm "mo…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 2df7af93fdadb9ba8226fe443fae15ecdefda2a6 <
    bad13de764888b765ceaa4668893b52bd16653cc
  - >-
    Linux >= 2df7af93fdadb9ba8226fe443fae15ecdefda2a6 <
    bebd60ec3bf21062f103e32e6203c6daabdbd51b
  - >-
    Linux >= 2df7af93fdadb9ba8226fe443fae15ecdefda2a6 <
    07ab77154d6fd2d67e465ab5ce30083709950f02
  - >-
    Linux >= 2df7af93fdadb9ba8226fe443fae15ecdefda2a6 <
    0d0b368b9d104b437e1f4850ae94bdb9a3601e89
  - Linux 5.12
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-05T20:08:21.553449Z'
published: '2025-09-15'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T20:10:32.023Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2022-50269'
references:
  - url: 'https://git.kernel.org/stable/c/bad13de764888b765ceaa4668893b52bd16653cc'
  - url: 'https://git.kernel.org/stable/c/bebd60ec3bf21062f103e32e6203c6daabdbd51b'
  - url: 'https://git.kernel.org/stable/c/07ab77154d6fd2d67e465ab5ce30083709950f02'
  - url: 'https://git.kernel.org/stable/c/0d0b368b9d104b437e1f4850ae94bdb9a3601e89'
tags:
  - cve.org
epss: 0.00159
epssPercentile: 0.05088
ingestedAt: '2026-11-05T22:38:31.715Z'
---

## Overview

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

drm/vkms: Fix memory leak in vkms_init()

A memory leak was reported after the vkms module install failed.

unreferenced object 0xffff88810bc28520 (size 16):
  comm "modprobe", pid 9662, jiffies 4298009455 (age 42.590s)
  hex dump (first 16 bytes):
    01 01 00 64 81 88 ff ff 00 00 dc 0a 81 88 ff ff  ...d............
  backtrace:
    [<00000000e7561ff8>] kmalloc_trace+0x27/0x60
    [<000000000b1954a0>] 0xffffffffc45200a9
    [<00000000abbf1da0>] do_one_initcall+0xd0/0x4f0
    [<000000001505ee87>] do_init_module+0x1a4/0x680
    [<00000000958079ad>] load_module+0x6249/0x7110
    [<00000000117e4696>] __do_sys_finit_module+0x140/0x200
    [<00000000f74b12d2>] do_syscall_64+0x35/0x80
    [<000000008fc6fcde>] entry_SYSCALL_64_after_hwframe+0x46/0xb0

The reason is that the vkms_init() returns without checking the return
value of vkms_create(), and if the vkms_create() failed, the config
allocated at the beginning of vkms_init() is leaked.

 vkms_init()
   config = kmalloc(...) # config allocated
   ...
   return vkms_create() # vkms_create failed and config is leaked

Fix this problem by checking return value of vkms_create() and free the
config if error happened.

## Affected

- `Linux >= 2df7af93fdadb9ba8226fe443fae15ecdefda2a6 < bad13de764888b765ceaa4668893b52bd16653cc`
- `Linux >= 2df7af93fdadb9ba8226fe443fae15ecdefda2a6 < bebd60ec3bf21062f103e32e6203c6daabdbd51b`
- `Linux >= 2df7af93fdadb9ba8226fe443fae15ecdefda2a6 < 07ab77154d6fd2d67e465ab5ce30083709950f02`
- `Linux >= 2df7af93fdadb9ba8226fe443fae15ecdefda2a6 < 0d0b368b9d104b437e1f4850ae94bdb9a3601e89`
- `Linux 5.12`

## Remediation

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