CVE-2023-52855 (GCVE-0-2023-52855)

Vulnerability from cvelistv5 – Published: 2024-05-21 15:31 – Updated: 2025-05-04 07:44
VLAI?
Title
usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency
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.
CWE
  • CWE-476 - NULL Pointer Dereference
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 33ad261aa62be02f0cedeb4d5735cc726de84a3f , < 14c9ec34e8118fbffd7f5431814d767726323e72 (git)
Affected: 33ad261aa62be02f0cedeb4d5735cc726de84a3f , < fed492aa6493a91a77ebd51da6fb939c98d94a0d (git)
Affected: 33ad261aa62be02f0cedeb4d5735cc726de84a3f , < 64c47749fc7507ed732e155c958253968c1d275e (git)
Affected: 33ad261aa62be02f0cedeb4d5735cc726de84a3f , < bdb3dd4096302d6b87441fdc528439f171b04be6 (git)
Affected: 33ad261aa62be02f0cedeb4d5735cc726de84a3f , < fcaafb574fc88a52dce817f039f7ff2f9da38001 (git)
Affected: 33ad261aa62be02f0cedeb4d5735cc726de84a3f , < 6b21a22728852d020a6658d39cd7bb7e14b07790 (git)
Affected: 33ad261aa62be02f0cedeb4d5735cc726de84a3f , < 3e851a77a13ce944d703721793f49ee82622986d (git)
Affected: 33ad261aa62be02f0cedeb4d5735cc726de84a3f , < a7bee9598afb38004841a41dd8fe68c1faff4e90 (git)
Affected: 33ad261aa62be02f0cedeb4d5735cc726de84a3f , < ef307bc6ef04e8c1ea843231db58e3afaafa9fa6 (git)
Create a notification for this product.
    Linux Linux Affected: 4.2
Unaffected: 0 , < 4.2 (semver)
Unaffected: 4.14.330 , ≤ 4.14.* (semver)
Unaffected: 4.19.299 , ≤ 4.19.* (semver)
Unaffected: 5.4.261 , ≤ 5.4.* (semver)
Unaffected: 5.10.201 , ≤ 5.10.* (semver)
Unaffected: 5.15.139 , ≤ 5.15.* (semver)
Unaffected: 6.1.63 , ≤ 6.1.* (semver)
Unaffected: 6.5.12 , ≤ 6.5.* (semver)
Unaffected: 6.6.2 , ≤ 6.6.* (semver)
Unaffected: 6.7 , ≤ * (original_commit_for_fix)
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"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "4.14.330",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "4.19.299",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.261",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.201",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.139",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.63",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.5.12",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.2",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.7",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "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-\u003ehcpriv = NULL\" is executed without\nholding the lock \"hsotg-\u003elock\". In _dwc2_hcd_urb_dequeue():\n\n    spin_lock_irqsave(\u0026hsotg-\u003elock, flags);\n    ...\n\tif (!urb-\u003ehcpriv) {\n\t\tdev_dbg(hsotg-\u003edev, \"## urb-\u003ehcpriv is NULL ##\\n\");\n\t\tgoto out;\n\t}\n    rc = dwc2_hcd_urb_dequeue(hsotg, urb-\u003ehcpriv); // Use urb-\u003ehcpriv\n    ...\nout:\n    spin_unlock_irqrestore(\u0026hsotg-\u003elock, flags);\n\nWhen _dwc2_hcd_urb_enqueue() and _dwc2_hcd_urb_dequeue() are\nconcurrently executed, the NULL check of \"urb-\u003ehcpriv\" can be executed\nbefore \"urb-\u003ehcpriv = NULL\". After urb-\u003ehcpriv 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-\u003ehcpriv = NULL\" should be executed with\nholding the lock \"hsotg-\u003elock\". 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": "2025-05-04T07:44:23.557Z",
        "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-1.2.0"
      }
    }
  },
  "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": "2025-05-04T07:44:23.557Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "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-1.2.0\"}, \"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-\u003ehcpriv = NULL\\\" is executed without\\nholding the lock \\\"hsotg-\u003elock\\\". In _dwc2_hcd_urb_dequeue():\\n\\n    spin_lock_irqsave(\u0026hsotg-\u003elock, flags);\\n    ...\\n\\tif (!urb-\u003ehcpriv) {\\n\\t\\tdev_dbg(hsotg-\u003edev, \\\"## urb-\u003ehcpriv is NULL ##\\\\n\\\");\\n\\t\\tgoto out;\\n\\t}\\n    rc = dwc2_hcd_urb_dequeue(hsotg, urb-\u003ehcpriv); // Use urb-\u003ehcpriv\\n    ...\\nout:\\n    spin_unlock_irqrestore(\u0026hsotg-\u003elock, flags);\\n\\nWhen _dwc2_hcd_urb_enqueue() and _dwc2_hcd_urb_dequeue() are\\nconcurrently executed, the NULL check of \\\"urb-\u003ehcpriv\\\" can be executed\\nbefore \\\"urb-\u003ehcpriv = NULL\\\". After urb-\u003ehcpriv 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-\u003ehcpriv = NULL\\\" should be executed with\\nholding the lock \\\"hsotg-\u003elock\\\". 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.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"4.14.330\", \"versionStartIncluding\": \"4.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"4.19.299\", \"versionStartIncluding\": \"4.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.4.261\", \"versionStartIncluding\": \"4.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.201\", \"versionStartIncluding\": \"4.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.139\", \"versionStartIncluding\": \"4.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.63\", \"versionStartIncluding\": \"4.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.5.12\", \"versionStartIncluding\": \"4.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.2\", \"versionStartIncluding\": \"4.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.7\", \"versionStartIncluding\": \"4.2\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2025-05-04T07:44:23.557Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2023-52855\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2025-05-04T07:44:23.557Z\", \"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.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…