Lucene search

K
cvelistLinuxCVELIST:CVE-2024-42253
HistoryAug 08, 2024 - 8:46 a.m.

CVE-2024-42253 gpio: pca953x: fix pca953x_irq_bus_sync_unlock race

2024-08-0808:46:29
Linux
www.cve.org
4
linux kernel
vulnerability
fixed
gpio
pca953x
i2c_lock
race
i.mx8mp
system

EPSS

0

Percentile

5.1%

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

gpio: pca953x: fix pca953x_irq_bus_sync_unlock race

Ensure that `i2c_lock’ is held when setting interrupt latch and mask in
pca953x_irq_bus_sync_unlock() in order to avoid races.

The other (non-probe) call site pca953x_gpio_set_multiple() ensures the
lock is held before calling pca953x_write_regs().

The problem occurred when a request raced against irq_bus_sync_unlock()
approximately once per thousand reboots on an i.MX8MP based system.

  • Normal case

    0-0022: write register AI|3a {03,02,00,00,01} Input latch P0
    0-0022: write register AI|49 {fc,fd,ff,ff,fe} Interrupt mask P0
    0-0022: write register AI|08 {ff,00,00,00,00} Output P3
    0-0022: write register AI|12 {fc,00,00,00,00} Config P3

  • Race case

    0-0022: write register AI|08 {ff,00,00,00,00} Output P3
    0-0022: write register AI|08 {03,02,00,00,01} *** Wrong register***
    0-0022: write register AI|12 {fc,00,00,00,00} Config P3
    0-0022: write register AI|49 {fc,fd,ff,ff,fe} Interrupt mask P0

CNA Affected

[
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "unaffected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "drivers/gpio/gpio-pca953x.c"
    ],
    "versions": [
      {
        "version": "1da177e4c3f4",
        "lessThan": "58a5c93bd1a6",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "1da177e4c3f4",
        "lessThan": "e2ecdddca80d",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "1da177e4c3f4",
        "lessThan": "de7cffa53149",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "1da177e4c3f4",
        "lessThan": "bfc6444b57dc",
        "status": "affected",
        "versionType": "git"
      }
    ]
  },
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "affected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "drivers/gpio/gpio-pca953x.c"
    ],
    "versions": [
      {
        "version": "6.1.101",
        "lessThanOrEqual": "6.1.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.6.42",
        "lessThanOrEqual": "6.6.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.9.11",
        "lessThanOrEqual": "6.9.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.10",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]

EPSS

0

Percentile

5.1%