{
  "schemaVersion": 1,
  "attribution": [
    {
      "source": "CISA Known Exploited Vulnerabilities",
      "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
      "licence": "US government work"
    },
    {
      "source": "GitHub Advisory Database",
      "url": "https://github.com/advisories",
      "licence": "CC BY 4.0"
    },
    {
      "source": "Have I Been Pwned",
      "url": "https://haveibeenpwned.com/",
      "licence": "CC BY 4.0"
    },
    {
      "source": "CVE Program (CVE records)",
      "url": "https://www.cve.org/Legal/TermsOfUse",
      "licence": "CVE Terms of Use",
      "notice": "Copyright © 1999-2026, The MITRE Corporation. CVE is a trademark and the CVE logo is a registered trademark of The MITRE Corporation.",
      "terms": "CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy."
    },
    {
      "source": "FIRST EPSS",
      "url": "https://www.first.org/epss/",
      "licence": "free to use; FIRST requests attribution"
    }
  ],
  "record": {
    "id": "CVE-2023-52855",
    "sourceURL": "https://www.cve.org/CVERecord?id=CVE-2023-52855",
    "idYear": 2023,
    "status": "PUBLISHED",
    "publishedAt": "2024-05-21T15:31:49.909Z",
    "updatedAt": "2026-05-11T19:34:19.661Z",
    "importedAt": "2026-10-24T01:57:03.413Z",
    "snapshot": {
      "id": "cve_2026-10-24_midnight_baseline",
      "at": "2026-10-24T00:00:00.000Z",
      "source": "https://github.com/CVEProject/cvelistV5/releases/tag/cve_2026-10-24_0100Z"
    },
    "facts": {
      "title": "usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency",
      "summary": "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.",
      "affected": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "14c9ec34e8118fbffd7f5431814d767726323e72"
            },
            {
              "version": "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "fed492aa6493a91a77ebd51da6fb939c98d94a0d"
            },
            {
              "version": "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "64c47749fc7507ed732e155c958253968c1d275e"
            },
            {
              "version": "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "bdb3dd4096302d6b87441fdc528439f171b04be6"
            },
            {
              "version": "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "fcaafb574fc88a52dce817f039f7ff2f9da38001"
            },
            {
              "version": "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "6b21a22728852d020a6658d39cd7bb7e14b07790"
            },
            {
              "version": "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "3e851a77a13ce944d703721793f49ee82622986d"
            },
            {
              "version": "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "a7bee9598afb38004841a41dd8fe68c1faff4e90"
            },
            {
              "version": "33ad261aa62be02f0cedeb4d5735cc726de84a3f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "ef307bc6ef04e8c1ea843231db58e3afaafa9fa6"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "versions": [
            {
              "version": "4.2",
              "status": "affected"
            },
            {
              "version": "0",
              "status": "unaffected",
              "versionType": "semver",
              "lessThan": "4.2"
            },
            {
              "version": "4.14.330",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "4.14.*"
            },
            {
              "version": "4.19.299",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "4.19.*"
            },
            {
              "version": "5.4.261",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.4.*"
            },
            {
              "version": "5.10.201",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.10.*"
            },
            {
              "version": "5.15.139",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.15.*"
            },
            {
              "version": "6.1.63",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "version": "6.5.12",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "6.5.*"
            },
            {
              "version": "6.6.2",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "6.6.*"
            },
            {
              "version": "6.7",
              "status": "unaffected",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ]
        }
      ]
    }
  }
}