{
   "containers": {
      "cna": {
         "providerMetadata": {
            "orgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038"
         },
         "descriptions": [
            {
               "lang": "en",
               "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nusb: gadget: rndis: add spinlock for rndis response list\n\nThere's no lock for rndis response list. It could cause list corruption\nif there're two different list_add at the same time like below.\nIt's better to add in rndis_add_response / rndis_free_response\n/ rndis_get_next_response to prevent any race condition on response list.\n\n[  361.894299] [1:   irq/191-dwc3:16979] list_add corruption.\nnext->prev should be prev (ffffff80651764d0),\nbut was ffffff883dc36f80. (next=ffffff80651764d0).\n\n[  361.904380] [1:   irq/191-dwc3:16979] Call trace:\n[  361.904391] [1:   irq/191-dwc3:16979]  __list_add_valid+0x74/0x90\n[  361.904401] [1:   irq/191-dwc3:16979]  rndis_msg_parser+0x168/0x8c0\n[  361.904409] [1:   irq/191-dwc3:16979]  rndis_command_complete+0x24/0x84\n[  361.904417] [1:   irq/191-dwc3:16979]  usb_gadget_giveback_request+0x20/0xe4\n[  361.904426] [1:   irq/191-dwc3:16979]  dwc3_gadget_giveback+0x44/0x60\n[  361.904434] [1:   irq/191-dwc3:16979]  dwc3_ep0_complete_data+0x1e8/0x3a0\n[  361.904442] [1:   irq/191-dwc3:16979]  dwc3_ep0_interrupt+0x29c/0x3dc\n[  361.904450] [1:   irq/191-dwc3:16979]  dwc3_process_event_entry+0x78/0x6cc\n[  361.904457] [1:   irq/191-dwc3:16979]  dwc3_process_event_buf+0xa0/0x1ec\n[  361.904465] [1:   irq/191-dwc3:16979]  dwc3_thread_interrupt+0x34/0x5c"
            }
         ],
         "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"
                  }
               ]
            }
         ],
         "references": [
            {
               "url": "https://git.kernel.org/stable/c/9f5d8ba538ef81cd86ea587ca3f8c77e26bea405"
            },
            {
               "url": "https://git.kernel.org/stable/c/669c2b178956718407af5631ccbc61c24413f038"
            },
            {
               "url": "https://git.kernel.org/stable/c/9f688aadede6b862a0a898792b1a35421c93636f"
            },
            {
               "url": "https://git.kernel.org/stable/c/9ab652d41deab49848673c3dadb57ad338485376"
            },
            {
               "url": "https://git.kernel.org/stable/c/4ce247af3f30078d5b97554f1ae6200a0222c15a"
            },
            {
               "url": "https://git.kernel.org/stable/c/da514063440b53a27309a4528b726f92c3cfe56f"
            },
            {
               "url": "https://git.kernel.org/stable/c/33222d1571d7ce8c1c75f6b488f38968fa93d2d9"
            },
            {
               "url": "https://git.kernel.org/stable/c/aaaba1c86d04dac8e49bf508b492f81506257da3"
            }
         ],
         "title": "usb: gadget: rndis: add spinlock for rndis response list",
         "x_generator": {
            "engine": "bippy-c9c4e1df01b2"
         }
      }
   },
   "cveMetadata": {
      "assignerOrgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038",
      "cveID": "CVE-2022-48926",
      "requesterUserId": "gregkh@kernel.org",
      "serial": "1",
      "state": "PUBLISHED"
   },
   "dataType": "CVE_RECORD",
   "dataVersion": "5.0"
}
