cve-2023-52855
Vulnerability from cvelistv5
Published
2024-05-21 15:31
Modified
2024-12-19 08:27
Summary
In the Linux kernel, the following vulnerability has been resolved: usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency In _dwc2_hcd_urb_enqueue(), "urb->hcpriv = NULL" is executed without holding the lock "hsotg->lock". In _dwc2_hcd_urb_dequeue(): spin_lock_irqsave(&hsotg->lock, flags); ... if (!urb->hcpriv) { dev_dbg(hsotg->dev, "## urb->hcpriv is NULL ##\n"); goto out; } rc = dwc2_hcd_urb_dequeue(hsotg, urb->hcpriv); // Use urb->hcpriv ... out: spin_unlock_irqrestore(&hsotg->lock, flags); When _dwc2_hcd_urb_enqueue() and _dwc2_hcd_urb_dequeue() are concurrently executed, the NULL check of "urb->hcpriv" can be executed before "urb->hcpriv = NULL". After urb->hcpriv is NULL, it can be used in the function call to dwc2_hcd_urb_dequeue(), which can cause a NULL pointer dereference. This possible bug is found by an experimental static analysis tool developed by myself. This tool analyzes the locking APIs to extract function pairs that can be concurrently executed, and then analyzes the instructions in the paired functions to identify possible concurrency bugs including data races and atomicity violations. The above possible bug is reported, when my tool analyzes the source code of Linux 6.5. To fix this possible bug, "urb->hcpriv = NULL" should be executed with holding the lock "hsotg->lock". After using this patch, my tool never reports the possible bug, with the kernelconfiguration allyesconfig for x86_64. Because I have no associated hardware, I cannot test the patch in runtime testing, and just verify it according to the code logic.
References
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/14c9ec34e8118fbffd7f5431814d767726323e72Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/3e851a77a13ce944d703721793f49ee82622986dPatch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/64c47749fc7507ed732e155c958253968c1d275ePatch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/6b21a22728852d020a6658d39cd7bb7e14b07790Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/a7bee9598afb38004841a41dd8fe68c1faff4e90Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/bdb3dd4096302d6b87441fdc528439f171b04be6Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/ef307bc6ef04e8c1ea843231db58e3afaafa9fa6Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/fcaafb574fc88a52dce817f039f7ff2f9da38001Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/fed492aa6493a91a77ebd51da6fb939c98d94a0dPatch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/14c9ec34e8118fbffd7f5431814d767726323e72Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/3e851a77a13ce944d703721793f49ee82622986dPatch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/64c47749fc7507ed732e155c958253968c1d275ePatch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/6b21a22728852d020a6658d39cd7bb7e14b07790Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/a7bee9598afb38004841a41dd8fe68c1faff4e90Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/bdb3dd4096302d6b87441fdc528439f171b04be6Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/ef307bc6ef04e8c1ea843231db58e3afaafa9fa6Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/fcaafb574fc88a52dce817f039f7ff2f9da38001Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/fed492aa6493a91a77ebd51da6fb939c98d94a0dPatch
Impacted products
Vendor Product Version
Linux Linux Version: 33ad261aa62be02f0cedeb4d5735cc726de84a3f
Version: 33ad261aa62be02f0cedeb4d5735cc726de84a3f
Version: 33ad261aa62be02f0cedeb4d5735cc726de84a3f
Version: 33ad261aa62be02f0cedeb4d5735cc726de84a3f
Version: 33ad261aa62be02f0cedeb4d5735cc726de84a3f
Version: 33ad261aa62be02f0cedeb4d5735cc726de84a3f
Version: 33ad261aa62be02f0cedeb4d5735cc726de84a3f
Version: 33ad261aa62be02f0cedeb4d5735cc726de84a3f
Version: 33ad261aa62be02f0cedeb4d5735cc726de84a3f
Create a notification for this product.
   Linux Linux Version: 4.2
Create a notification for this product.
Show details on NVD website


{
   containers: {
      adp: [
         {
            metrics: [
               {
                  cvssV3_1: {
                     attackComplexity: "LOW",
                     attackVector: "LOCAL",
                     availabilityImpact: "HIGH",
                     baseScore: 5.5,
                     baseSeverity: "MEDIUM",
                     confidentialityImpact: "NONE",
                     integrityImpact: "NONE",
                     privilegesRequired: "LOW",
                     scope: "UNCHANGED",
                     userInteraction: "NONE",
                     vectorString: "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
                     version: "3.1",
                  },
               },
               {
                  other: {
                     content: {
                        id: "CVE-2023-52855",
                        options: [
                           {
                              Exploitation: "none",
                           },
                           {
                              Automatable: "no",
                           },
                           {
                              "Technical Impact": "partial",
                           },
                        ],
                        role: "CISA Coordinator",
                        timestamp: "2024-05-29T17:15:57.421865Z",
                        version: "2.0.3",
                     },
                     type: "ssvc",
                  },
               },
            ],
            problemTypes: [
               {
                  descriptions: [
                     {
                        cweId: "CWE-476",
                        description: "CWE-476 NULL Pointer Dereference",
                        lang: "en",
                        type: "CWE",
                     },
                  ],
               },
            ],
            providerMetadata: {
               dateUpdated: "2024-11-05T14:51:47.408Z",
               orgId: "134c704f-9b21-4f2e-91b3-4a467353bcc0",
               shortName: "CISA-ADP",
            },
            title: "CISA ADP Vulnrichment",
         },
         {
            providerMetadata: {
               dateUpdated: "2024-08-02T23:11:36.070Z",
               orgId: "af854a3a-2127-422b-91ae-364da2661108",
               shortName: "CVE",
            },
            references: [
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/14c9ec34e8118fbffd7f5431814d767726323e72",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/fed492aa6493a91a77ebd51da6fb939c98d94a0d",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/64c47749fc7507ed732e155c958253968c1d275e",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/bdb3dd4096302d6b87441fdc528439f171b04be6",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/fcaafb574fc88a52dce817f039f7ff2f9da38001",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/6b21a22728852d020a6658d39cd7bb7e14b07790",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/3e851a77a13ce944d703721793f49ee82622986d",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/a7bee9598afb38004841a41dd8fe68c1faff4e90",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/ef307bc6ef04e8c1ea843231db58e3afaafa9fa6",
               },
            ],
            title: "CVE Program Container",
         },
      ],
      cna: {
         affected: [
            {
               defaultStatus: "unaffected",
               product: "Linux",
               programFiles: [
                  "drivers/usb/dwc2/hcd.c",
               ],
               repo: "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               vendor: "Linux",
               versions: [
                  {
                     lessThan: "14c9ec34e8118fbffd7f5431814d767726323e72",
                     status: "affected",
                     version: "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
                     versionType: "git",
                  },
                  {
                     lessThan: "fed492aa6493a91a77ebd51da6fb939c98d94a0d",
                     status: "affected",
                     version: "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
                     versionType: "git",
                  },
                  {
                     lessThan: "64c47749fc7507ed732e155c958253968c1d275e",
                     status: "affected",
                     version: "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
                     versionType: "git",
                  },
                  {
                     lessThan: "bdb3dd4096302d6b87441fdc528439f171b04be6",
                     status: "affected",
                     version: "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
                     versionType: "git",
                  },
                  {
                     lessThan: "fcaafb574fc88a52dce817f039f7ff2f9da38001",
                     status: "affected",
                     version: "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
                     versionType: "git",
                  },
                  {
                     lessThan: "6b21a22728852d020a6658d39cd7bb7e14b07790",
                     status: "affected",
                     version: "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
                     versionType: "git",
                  },
                  {
                     lessThan: "3e851a77a13ce944d703721793f49ee82622986d",
                     status: "affected",
                     version: "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
                     versionType: "git",
                  },
                  {
                     lessThan: "a7bee9598afb38004841a41dd8fe68c1faff4e90",
                     status: "affected",
                     version: "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
                     versionType: "git",
                  },
                  {
                     lessThan: "ef307bc6ef04e8c1ea843231db58e3afaafa9fa6",
                     status: "affected",
                     version: "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
                     versionType: "git",
                  },
               ],
            },
            {
               defaultStatus: "affected",
               product: "Linux",
               programFiles: [
                  "drivers/usb/dwc2/hcd.c",
               ],
               repo: "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               vendor: "Linux",
               versions: [
                  {
                     status: "affected",
                     version: "4.2",
                  },
                  {
                     lessThan: "4.2",
                     status: "unaffected",
                     version: "0",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "4.14.*",
                     status: "unaffected",
                     version: "4.14.330",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "4.19.*",
                     status: "unaffected",
                     version: "4.19.299",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "5.4.*",
                     status: "unaffected",
                     version: "5.4.261",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "5.10.*",
                     status: "unaffected",
                     version: "5.10.201",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "5.15.*",
                     status: "unaffected",
                     version: "5.15.139",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.1.*",
                     status: "unaffected",
                     version: "6.1.63",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.5.*",
                     status: "unaffected",
                     version: "6.5.12",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.6.*",
                     status: "unaffected",
                     version: "6.6.2",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "*",
                     status: "unaffected",
                     version: "6.7",
                     versionType: "original_commit_for_fix",
                  },
               ],
            },
         ],
         descriptions: [
            {
               lang: "en",
               value: "In the Linux kernel, the following vulnerability has been resolved:\n\nusb: dwc2: fix possible NULL pointer dereference caused by driver concurrency\n\nIn _dwc2_hcd_urb_enqueue(), \"urb->hcpriv = NULL\" is executed without\nholding the lock \"hsotg->lock\". In _dwc2_hcd_urb_dequeue():\n\n    spin_lock_irqsave(&hsotg->lock, flags);\n    ...\n\tif (!urb->hcpriv) {\n\t\tdev_dbg(hsotg->dev, \"## urb->hcpriv is NULL ##\\n\");\n\t\tgoto out;\n\t}\n    rc = dwc2_hcd_urb_dequeue(hsotg, urb->hcpriv); // Use urb->hcpriv\n    ...\nout:\n    spin_unlock_irqrestore(&hsotg->lock, flags);\n\nWhen _dwc2_hcd_urb_enqueue() and _dwc2_hcd_urb_dequeue() are\nconcurrently executed, the NULL check of \"urb->hcpriv\" can be executed\nbefore \"urb->hcpriv = NULL\". After urb->hcpriv is NULL, it can be used\nin the function call to dwc2_hcd_urb_dequeue(), which can cause a NULL\npointer dereference.\n\nThis possible bug is found by an experimental static analysis tool\ndeveloped by myself. This tool analyzes the locking APIs to extract\nfunction pairs that can be concurrently executed, and then analyzes the\ninstructions in the paired functions to identify possible concurrency\nbugs including data races and atomicity violations. The above possible\nbug is reported, when my tool analyzes the source code of Linux 6.5.\n\nTo fix this possible bug, \"urb->hcpriv = NULL\" should be executed with\nholding the lock \"hsotg->lock\". After using this patch, my tool never\nreports the possible bug, with the kernelconfiguration allyesconfig for\nx86_64. Because I have no associated hardware, I cannot test the patch\nin runtime testing, and just verify it according to the code logic.",
            },
         ],
         providerMetadata: {
            dateUpdated: "2024-12-19T08:27:16.724Z",
            orgId: "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            shortName: "Linux",
         },
         references: [
            {
               url: "https://git.kernel.org/stable/c/14c9ec34e8118fbffd7f5431814d767726323e72",
            },
            {
               url: "https://git.kernel.org/stable/c/fed492aa6493a91a77ebd51da6fb939c98d94a0d",
            },
            {
               url: "https://git.kernel.org/stable/c/64c47749fc7507ed732e155c958253968c1d275e",
            },
            {
               url: "https://git.kernel.org/stable/c/bdb3dd4096302d6b87441fdc528439f171b04be6",
            },
            {
               url: "https://git.kernel.org/stable/c/fcaafb574fc88a52dce817f039f7ff2f9da38001",
            },
            {
               url: "https://git.kernel.org/stable/c/6b21a22728852d020a6658d39cd7bb7e14b07790",
            },
            {
               url: "https://git.kernel.org/stable/c/3e851a77a13ce944d703721793f49ee82622986d",
            },
            {
               url: "https://git.kernel.org/stable/c/a7bee9598afb38004841a41dd8fe68c1faff4e90",
            },
            {
               url: "https://git.kernel.org/stable/c/ef307bc6ef04e8c1ea843231db58e3afaafa9fa6",
            },
         ],
         title: "usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency",
         x_generator: {
            engine: "bippy-5f407fcff5a0",
         },
      },
   },
   cveMetadata: {
      assignerOrgId: "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      assignerShortName: "Linux",
      cveId: "CVE-2023-52855",
      datePublished: "2024-05-21T15:31:49.909Z",
      dateReserved: "2024-05-21T15:19:24.257Z",
      dateUpdated: "2024-12-19T08:27:16.724Z",
      state: "PUBLISHED",
   },
   dataType: "CVE_RECORD",
   dataVersion: "5.1",
   "vulnerability-lookup:meta": {
      nvd: "{\"cve\":{\"id\":\"CVE-2023-52855\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-21T16:15:22.453\",\"lastModified\":\"2025-04-02T15:06:01.477\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nusb: dwc2: fix possible NULL pointer dereference caused by driver concurrency\\n\\nIn _dwc2_hcd_urb_enqueue(), \\\"urb->hcpriv = NULL\\\" is executed without\\nholding the lock \\\"hsotg->lock\\\". In _dwc2_hcd_urb_dequeue():\\n\\n    spin_lock_irqsave(&hsotg->lock, flags);\\n    ...\\n\\tif (!urb->hcpriv) {\\n\\t\\tdev_dbg(hsotg->dev, \\\"## urb->hcpriv is NULL ##\\\\n\\\");\\n\\t\\tgoto out;\\n\\t}\\n    rc = dwc2_hcd_urb_dequeue(hsotg, urb->hcpriv); // Use urb->hcpriv\\n    ...\\nout:\\n    spin_unlock_irqrestore(&hsotg->lock, flags);\\n\\nWhen _dwc2_hcd_urb_enqueue() and _dwc2_hcd_urb_dequeue() are\\nconcurrently executed, the NULL check of \\\"urb->hcpriv\\\" can be executed\\nbefore \\\"urb->hcpriv = NULL\\\". After urb->hcpriv is NULL, it can be used\\nin the function call to dwc2_hcd_urb_dequeue(), which can cause a NULL\\npointer dereference.\\n\\nThis possible bug is found by an experimental static analysis tool\\ndeveloped by myself. This tool analyzes the locking APIs to extract\\nfunction pairs that can be concurrently executed, and then analyzes the\\ninstructions in the paired functions to identify possible concurrency\\nbugs including data races and atomicity violations. The above possible\\nbug is reported, when my tool analyzes the source code of Linux 6.5.\\n\\nTo fix this possible bug, \\\"urb->hcpriv = NULL\\\" should be executed with\\nholding the lock \\\"hsotg->lock\\\". After using this patch, my tool never\\nreports the possible bug, with the kernelconfiguration allyesconfig for\\nx86_64. Because I have no associated hardware, I cannot test the patch\\nin runtime testing, and just verify it according to the code logic.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: usb: dwc2: corrige posible desreferencia de puntero NULL causada por concurrencia de controladores. En _dwc2_hcd_urb_enqueue(), \\\"urb->hcpriv = NULL\\\" se ejecuta sin mantener presionado el bloqueo \\\"hsotg->lock\\\" . En _dwc2_hcd_urb_dequeue(): spin_lock_irqsave(&hsotg->lock, flags); ... if (!urb->hcpriv) { dev_dbg(hsotg->dev, \\\"## urb->hcpriv es NULL ##\\\\n\\\"); salir; } rc = dwc2_hcd_urb_dequeue(hsotg, urb->hcpriv); // Usa urb->hcpriv ... out: spin_unlock_irqrestore(&hsotg->lock, flags); Cuando _dwc2_hcd_urb_enqueue() y _dwc2_hcd_urb_dequeue() se ejecutan simultáneamente, la verificación NULL de \\\"urb->hcpriv\\\" se puede ejecutar antes de \\\"urb->hcpriv = NULL\\\". Después de que urb->hcpriv sea NULL, se puede usar en la llamada de función a dwc2_hcd_urb_dequeue(), lo que puede provocar una desreferencia del puntero NULL. Este posible error se encuentra mediante una herramienta experimental de análisis estático desarrollada por mí. Esta herramienta analiza las API de bloqueo para extraer pares de funciones que se pueden ejecutar simultáneamente y luego analiza las instrucciones en las funciones emparejadas para identificar posibles errores de concurrencia, incluidas ejecucións de datos y violaciones de atomicidad. El posible error anterior se informa cuando mi herramienta analiza el código fuente de Linux 6.5. Para corregir este posible error, se debe ejecutar \\\"urb->hcpriv = NULL\\\" manteniendo presionado el bloqueo \\\"hsotg->lock\\\". Después de usar este parche, mi herramienta nunca informa el posible error, con la configuración del kernel allyesconfig para x86_64. Como no tengo hardware asociado, no puedo probar el parche en tiempo de ejecución y simplemente verificarlo de acuerdo con la lógica del código.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-476\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.2\",\"versionEndExcluding\":\"4.14.330\",\"matchCriteriaId\":\"6DE16D5F-0841-47F6-B789-459769781E1B\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.15\",\"versionEndExcluding\":\"4.19.299\",\"matchCriteriaId\":\"F51D1457-86F8-4A6C-A7B9-323058B3C5E8\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.20\",\"versionEndExcluding\":\"5.4.261\",\"matchCriteriaId\":\"286E50BB-5A21-49BA-A6E5-526C72ADFE34\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.5\",\"versionEndExcluding\":\"5.10.201\",\"matchCriteriaId\":\"AF1ADC4E-CCC4-498A-876F-5136DDD36C1D\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.139\",\"matchCriteriaId\":\"81424D14-B38F-47B3-A1B8-BC3B60BB96EA\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"6.1.63\",\"matchCriteriaId\":\"80E1EA7E-2788-466C-9FFB-34AFA1B052F0\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.5.12\",\"matchCriteriaId\":\"825F64D9-E99F-49AA-8A7B-EF7C2965C5B2\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.6\",\"versionEndExcluding\":\"6.6.2\",\"matchCriteriaId\":\"4CBFF885-A4D3-4F21-B6FD-4D770034C048\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/14c9ec34e8118fbffd7f5431814d767726323e72\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/3e851a77a13ce944d703721793f49ee82622986d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/64c47749fc7507ed732e155c958253968c1d275e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/6b21a22728852d020a6658d39cd7bb7e14b07790\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a7bee9598afb38004841a41dd8fe68c1faff4e90\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/bdb3dd4096302d6b87441fdc528439f171b04be6\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/ef307bc6ef04e8c1ea843231db58e3afaafa9fa6\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/fcaafb574fc88a52dce817f039f7ff2f9da38001\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/fed492aa6493a91a77ebd51da6fb939c98d94a0d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/14c9ec34e8118fbffd7f5431814d767726323e72\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/3e851a77a13ce944d703721793f49ee82622986d\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/64c47749fc7507ed732e155c958253968c1d275e\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/6b21a22728852d020a6658d39cd7bb7e14b07790\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a7bee9598afb38004841a41dd8fe68c1faff4e90\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/bdb3dd4096302d6b87441fdc528439f171b04be6\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/ef307bc6ef04e8c1ea843231db58e3afaafa9fa6\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/fcaafb574fc88a52dce817f039f7ff2f9da38001\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/fed492aa6493a91a77ebd51da6fb939c98d94a0d\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]}]}}",
      vulnrichment: {
         containers: "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/14c9ec34e8118fbffd7f5431814d767726323e72\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/fed492aa6493a91a77ebd51da6fb939c98d94a0d\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/64c47749fc7507ed732e155c958253968c1d275e\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/bdb3dd4096302d6b87441fdc528439f171b04be6\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/fcaafb574fc88a52dce817f039f7ff2f9da38001\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/6b21a22728852d020a6658d39cd7bb7e14b07790\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/3e851a77a13ce944d703721793f49ee82622986d\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/a7bee9598afb38004841a41dd8fe68c1faff4e90\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/ef307bc6ef04e8c1ea843231db58e3afaafa9fa6\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T23:11:36.070Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 5.5, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"MEDIUM\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\", \"integrityImpact\": \"NONE\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"NONE\"}}, {\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2023-52855\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-05-29T17:15:57.421865Z\"}}}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-476\", \"description\": \"CWE-476 NULL Pointer Dereference\"}]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-05-29T17:16:01.564Z\"}}], \"cna\": {\"title\": \"usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"33ad261aa62be02f0cedeb4d5735cc726de84a3f\", \"lessThan\": \"14c9ec34e8118fbffd7f5431814d767726323e72\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"33ad261aa62be02f0cedeb4d5735cc726de84a3f\", \"lessThan\": \"fed492aa6493a91a77ebd51da6fb939c98d94a0d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"33ad261aa62be02f0cedeb4d5735cc726de84a3f\", \"lessThan\": \"64c47749fc7507ed732e155c958253968c1d275e\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"33ad261aa62be02f0cedeb4d5735cc726de84a3f\", \"lessThan\": \"bdb3dd4096302d6b87441fdc528439f171b04be6\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"33ad261aa62be02f0cedeb4d5735cc726de84a3f\", \"lessThan\": \"fcaafb574fc88a52dce817f039f7ff2f9da38001\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"33ad261aa62be02f0cedeb4d5735cc726de84a3f\", \"lessThan\": \"6b21a22728852d020a6658d39cd7bb7e14b07790\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"33ad261aa62be02f0cedeb4d5735cc726de84a3f\", \"lessThan\": \"3e851a77a13ce944d703721793f49ee82622986d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"33ad261aa62be02f0cedeb4d5735cc726de84a3f\", \"lessThan\": \"a7bee9598afb38004841a41dd8fe68c1faff4e90\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"33ad261aa62be02f0cedeb4d5735cc726de84a3f\", \"lessThan\": \"ef307bc6ef04e8c1ea843231db58e3afaafa9fa6\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/usb/dwc2/hcd.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"4.2\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"4.2\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"4.14.330\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"4.14.*\"}, {\"status\": \"unaffected\", \"version\": \"4.19.299\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"4.19.*\"}, {\"status\": \"unaffected\", \"version\": \"5.4.261\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.4.*\"}, {\"status\": \"unaffected\", \"version\": \"5.10.201\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.139\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.63\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.5.12\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.5.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.2\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.7\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/usb/dwc2/hcd.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/14c9ec34e8118fbffd7f5431814d767726323e72\"}, {\"url\": \"https://git.kernel.org/stable/c/fed492aa6493a91a77ebd51da6fb939c98d94a0d\"}, {\"url\": \"https://git.kernel.org/stable/c/64c47749fc7507ed732e155c958253968c1d275e\"}, {\"url\": \"https://git.kernel.org/stable/c/bdb3dd4096302d6b87441fdc528439f171b04be6\"}, {\"url\": \"https://git.kernel.org/stable/c/fcaafb574fc88a52dce817f039f7ff2f9da38001\"}, {\"url\": \"https://git.kernel.org/stable/c/6b21a22728852d020a6658d39cd7bb7e14b07790\"}, {\"url\": \"https://git.kernel.org/stable/c/3e851a77a13ce944d703721793f49ee82622986d\"}, {\"url\": \"https://git.kernel.org/stable/c/a7bee9598afb38004841a41dd8fe68c1faff4e90\"}, {\"url\": \"https://git.kernel.org/stable/c/ef307bc6ef04e8c1ea843231db58e3afaafa9fa6\"}], \"x_generator\": {\"engine\": \"bippy-5f407fcff5a0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nusb: dwc2: fix possible NULL pointer dereference caused by driver concurrency\\n\\nIn _dwc2_hcd_urb_enqueue(), \\\"urb->hcpriv = NULL\\\" is executed without\\nholding the lock \\\"hsotg->lock\\\". In _dwc2_hcd_urb_dequeue():\\n\\n    spin_lock_irqsave(&hsotg->lock, flags);\\n    ...\\n\\tif (!urb->hcpriv) {\\n\\t\\tdev_dbg(hsotg->dev, \\\"## urb->hcpriv is NULL ##\\\\n\\\");\\n\\t\\tgoto out;\\n\\t}\\n    rc = dwc2_hcd_urb_dequeue(hsotg, urb->hcpriv); // Use urb->hcpriv\\n    ...\\nout:\\n    spin_unlock_irqrestore(&hsotg->lock, flags);\\n\\nWhen _dwc2_hcd_urb_enqueue() and _dwc2_hcd_urb_dequeue() are\\nconcurrently executed, the NULL check of \\\"urb->hcpriv\\\" can be executed\\nbefore \\\"urb->hcpriv = NULL\\\". After urb->hcpriv is NULL, it can be used\\nin the function call to dwc2_hcd_urb_dequeue(), which can cause a NULL\\npointer dereference.\\n\\nThis possible bug is found by an experimental static analysis tool\\ndeveloped by myself. This tool analyzes the locking APIs to extract\\nfunction pairs that can be concurrently executed, and then analyzes the\\ninstructions in the paired functions to identify possible concurrency\\nbugs including data races and atomicity violations. The above possible\\nbug is reported, when my tool analyzes the source code of Linux 6.5.\\n\\nTo fix this possible bug, \\\"urb->hcpriv = NULL\\\" should be executed with\\nholding the lock \\\"hsotg->lock\\\". After using this patch, my tool never\\nreports the possible bug, with the kernelconfiguration allyesconfig for\\nx86_64. Because I have no associated hardware, I cannot test the patch\\nin runtime testing, and just verify it according to the code logic.\"}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2024-12-19T08:27:16.724Z\"}}}",
         cveMetadata: "{\"cveId\": \"CVE-2023-52855\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2024-12-19T08:27:16.724Z\", \"dateReserved\": \"2024-05-21T15:19:24.257Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-21T15:31:49.909Z\", \"assignerShortName\": \"Linux\"}",
         dataType: "CVE_RECORD",
         dataVersion: "5.1",
      },
   },
}


Log in or create an account to share your comment.

Security Advisory comment format.

This schema specifies the format of a comment related to a security advisory.

UUIDv4 of the comment
UUIDv4 of the Vulnerability-Lookup instance
When the comment was created originally
When the comment was last updated
Title of the comment
Description of the comment
The identifier of the vulnerability (CVE ID, GHSA-ID, PYSEC ID, etc.).



Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.