Lucene search

K
cvelistLinuxCVELIST:CVE-2022-48926
HistoryAug 22, 2024 - 3:31 a.m.

CVE-2022-48926 usb: gadget: rndis: add spinlock for rndis response list

2024-08-2203:31:18
Linux
www.cve.org
6
linux kernel
usb gadget rndis
spinlock
list corruption
race condition
response list

EPSS

0

Percentile

5.0%

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

usb: gadget: rndis: add spinlock for rndis response list

There’s no lock for rndis response list. It could cause list corruption
if there’re two different list_add at the same time like below.
It’s better to add in rndis_add_response / rndis_free_response
/ rndis_get_next_response to prevent any race condition on response list.

[ 361.894299] [1: irq/191-dwc3:16979] list_add corruption.
next->prev should be prev (ffffff80651764d0),
but was ffffff883dc36f80. (next=ffffff80651764d0).

[ 361.904380] [1: irq/191-dwc3:16979] Call trace:
[ 361.904391] [1: irq/191-dwc3:16979] __list_add_valid+0x74/0x90
[ 361.904401] [1: irq/191-dwc3:16979] rndis_msg_parser+0x168/0x8c0
[ 361.904409] [1: irq/191-dwc3:16979] rndis_command_complete+0x24/0x84
[ 361.904417] [1: irq/191-dwc3:16979] usb_gadget_giveback_request+0x20/0xe4
[ 361.904426] [1: irq/191-dwc3:16979] dwc3_gadget_giveback+0x44/0x60
[ 361.904434] [1: irq/191-dwc3:16979] dwc3_ep0_complete_data+0x1e8/0x3a0
[ 361.904442] [1: irq/191-dwc3:16979] dwc3_ep0_interrupt+0x29c/0x3dc
[ 361.904450] [1: irq/191-dwc3:16979] dwc3_process_event_entry+0x78/0x6cc
[ 361.904457] [1: irq/191-dwc3:16979] dwc3_process_event_buf+0xa0/0x1ec
[ 361.904465] [1: irq/191-dwc3:16979] dwc3_thread_interrupt+0x34/0x5c

CNA Affected

[
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "unaffected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "drivers/usb/gadget/function/rndis.c",
      "drivers/usb/gadget/function/rndis.h"
    ],
    "versions": [
      {
        "version": "f6281af9d62e",
        "lessThan": "9f5d8ba538ef",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "f6281af9d62e",
        "lessThan": "669c2b178956",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "f6281af9d62e",
        "lessThan": "9f688aadede6",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "f6281af9d62e",
        "lessThan": "9ab652d41dea",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "f6281af9d62e",
        "lessThan": "4ce247af3f30",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "f6281af9d62e",
        "lessThan": "da514063440b",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "f6281af9d62e",
        "lessThan": "33222d1571d7",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "f6281af9d62e",
        "lessThan": "aaaba1c86d04",
        "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/usb/gadget/function/rndis.c",
      "drivers/usb/gadget/function/rndis.h"
    ],
    "versions": [
      {
        "version": "4.6",
        "status": "affected"
      },
      {
        "version": "0",
        "lessThan": "4.6",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "4.9.304",
        "lessThanOrEqual": "4.9.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "4.14.269",
        "lessThanOrEqual": "4.14.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "4.19.232",
        "lessThanOrEqual": "4.19.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.4.182",
        "lessThanOrEqual": "5.4.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.10.103",
        "lessThanOrEqual": "5.10.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.15.26",
        "lessThanOrEqual": "5.15.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.16.12",
        "lessThanOrEqual": "5.16.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.17",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]

EPSS

0

Percentile

5.0%