---
id: CVE-2022-50282
title: 'chardev: fix error handling in cdev_device_add()'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  chardev: fix error handling in cdev_device_add()

  While doing fault injection test, I got the following report:

  ------------[ cut here ]------------
  kobject: '(null)' …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= da97a80a657d1b1b50ef633e8ff5dbf0d417fc8d <
    5d2146889fad4cb9e6c13e790d4cfd871486eca8
  - >-
    Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 <
    6acf8597c5b04f455ee0649e11e5f3bcd28f381e
  - >-
    Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 <
    34d17b39bceef25e4cf9805cd59250ae05d0a139
  - >-
    Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 <
    d85b5247a79355b8432bfd9ac871f96117f750d4
  - >-
    Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 <
    c46db6088bccff5115674d583fef46ede80077a2
  - >-
    Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 <
    28dc61cc49c6e995121c6d86bef4b73df78dda80
  - >-
    Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 <
    b5de1eac71fec1af7723f1083d23a24789fd795c
  - >-
    Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 <
    85a5660491b507d33662b8e81c142e6041e642eb
  - >-
    Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 <
    11fa7fefe3d8fac7da56bc9aa3dd5fb3081ca797
  - Linux f78b54e7d83c7879f9a6e49e6724019ca34177cc
  - Linux d79d7d5c878809964da537336dad5ff55fa1605e
  - Linux >= 4.9.224 < 4.9.337
  - Linux >= 3.16.83 < 3.17
  - Linux >= 4.4.224 < 4.5
  - Linux 4.12
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-05T20:08:55.622102Z'
published: '2025-09-15'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T20:10:33.031Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2022-50282'
references:
  - url: 'https://git.kernel.org/stable/c/5d2146889fad4cb9e6c13e790d4cfd871486eca8'
  - url: 'https://git.kernel.org/stable/c/6acf8597c5b04f455ee0649e11e5f3bcd28f381e'
  - url: 'https://git.kernel.org/stable/c/34d17b39bceef25e4cf9805cd59250ae05d0a139'
  - url: 'https://git.kernel.org/stable/c/d85b5247a79355b8432bfd9ac871f96117f750d4'
  - url: 'https://git.kernel.org/stable/c/c46db6088bccff5115674d583fef46ede80077a2'
  - url: 'https://git.kernel.org/stable/c/28dc61cc49c6e995121c6d86bef4b73df78dda80'
  - url: 'https://git.kernel.org/stable/c/b5de1eac71fec1af7723f1083d23a24789fd795c'
  - url: 'https://git.kernel.org/stable/c/85a5660491b507d33662b8e81c142e6041e642eb'
  - url: 'https://git.kernel.org/stable/c/11fa7fefe3d8fac7da56bc9aa3dd5fb3081ca797'
tags:
  - cve.org
epss: 0.00184
epssPercentile: 0.08066
ingestedAt: '2026-11-05T22:38:31.719Z'
---

## Overview

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

chardev: fix error handling in cdev_device_add()

While doing fault injection test, I got the following report:

------------[ cut here ]------------
kobject: '(null)' (0000000039956980): is not initialized, yet kobject_put() is being called.
WARNING: CPU: 3 PID: 6306 at kobject_put+0x23d/0x4e0
CPU: 3 PID: 6306 Comm: 283 Tainted: G        W          6.1.0-rc2-00005-g307c1086d7c9 #1253
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
RIP: 0010:kobject_put+0x23d/0x4e0
Call Trace:
 <TASK>
 cdev_device_add+0x15e/0x1b0
 __iio_device_register+0x13b4/0x1af0 [industrialio]
 __devm_iio_device_register+0x22/0x90 [industrialio]
 max517_probe+0x3d8/0x6b4 [max517]
 i2c_device_probe+0xa81/0xc00

When device_add() is injected fault and returns error, if dev->devt is not set,
cdev_add() is not called, cdev_del() is not needed. Fix this by checking dev->devt
in error path.

## Affected

- `Linux >= da97a80a657d1b1b50ef633e8ff5dbf0d417fc8d < 5d2146889fad4cb9e6c13e790d4cfd871486eca8`
- `Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 < 6acf8597c5b04f455ee0649e11e5f3bcd28f381e`
- `Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 < 34d17b39bceef25e4cf9805cd59250ae05d0a139`
- `Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 < d85b5247a79355b8432bfd9ac871f96117f750d4`
- `Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 < c46db6088bccff5115674d583fef46ede80077a2`
- `Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 < 28dc61cc49c6e995121c6d86bef4b73df78dda80`
- `Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 < b5de1eac71fec1af7723f1083d23a24789fd795c`
- `Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 < 85a5660491b507d33662b8e81c142e6041e642eb`
- `Linux >= 233ed09d7fdacf592ee91e6c97ce5f4364fbe7c0 < 11fa7fefe3d8fac7da56bc9aa3dd5fb3081ca797`
- `Linux f78b54e7d83c7879f9a6e49e6724019ca34177cc`
- `Linux d79d7d5c878809964da537336dad5ff55fa1605e`
- `Linux >= 4.9.224 < 4.9.337`
- `Linux >= 3.16.83 < 3.17`
- `Linux >= 4.4.224 < 4.5`
- `Linux 4.12`

## Remediation

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