Lucene search

K
vulnrichmentLinuxVULNRICHMENT:CVE-2022-48660
HistoryApr 28, 2024 - 1:01 p.m.

CVE-2022-48660 gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully

2024-04-2813:01:22
Linux
github.com
4
linux kernel
vulnerability
resolution
gpiolib
cdev
irq
warning trace
nxp-ls1028
gpio test
request_threaded_irq
free_irq

AI Score

6.7

Confidence

High

EPSS

0

Percentile

5.1%

SSVC

Exploitation

none

Automatable

no

Technical Impact

partial

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

gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully

When running gpio test on nxp-ls1028 platform with below command
gpiomon --num-events=3 --rising-edge gpiochip1 25
There will be a warning trace as below:
Call trace:
free_irq+0x204/0x360
lineevent_free+0x64/0x70
gpio_ioctl+0x598/0x6a0
__arm64_sys_ioctl+0xb4/0x100
invoke_syscall+0x5c/0x130

el0t_64_sync+0x1a0/0x1a4
The reason of this issue is that calling request_threaded_irq()
function failed, and then lineevent_free() is invoked to release
the resource. Since the lineevent_state::irq was already set, so
the subsequent invocation of free_irq() would trigger the above
warning call trace. To fix this issue, set the lineevent_state::irq
after the IRQ register successfully.

CNA Affected

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "468242724143",
        "lessThan": "657803b918e0",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "468242724143",
        "lessThan": "97da736cd11a",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "468242724143",
        "lessThan": "b1489043d3b9",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "468242724143",
        "lessThan": "69bef19d6b97",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "drivers/gpio/gpiolib-cdev.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "5.9"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "5.9",
        "versionType": "custom"
      },
      {
        "status": "unaffected",
        "version": "5.10.146",
        "versionType": "custom",
        "lessThanOrEqual": "5.10.*"
      },
      {
        "status": "unaffected",
        "version": "5.15.71",
        "versionType": "custom",
        "lessThanOrEqual": "5.15.*"
      },
      {
        "status": "unaffected",
        "version": "5.19.12",
        "versionType": "custom",
        "lessThanOrEqual": "5.19.*"
      },
      {
        "status": "unaffected",
        "version": "6.0",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "drivers/gpio/gpiolib-cdev.c"
    ],
    "defaultStatus": "affected"
  }
]

AI Score

6.7

Confidence

High

EPSS

0

Percentile

5.1%

SSVC

Exploitation

none

Automatable

no

Technical Impact

partial