Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2023-52855— usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency

EPSS 0.01% · P2
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2023-52855

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency
Source: NVD (National Vulnerability Database)
Vulnerability Description
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.
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux Kernel存在安全漏洞,该漏洞源于驱动程序并发可能导致空指针取消引用。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 33ad261aa62be02f0cedeb4d5735cc726de84a3f ~ 14c9ec34e8118fbffd7f5431814d767726323e72 -
LinuxLinux 4.2 -

II. Public POCs for CVE-2023-52855

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2023-52855

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-05-21 · 361 CVEs total

CVE-2023-52747IB/hfi1: Restore allocated resources on failed copyout
CVE-2023-52757smb: client: fix potential deadlock when releasing mids
CVE-2023-52755ksmbd: fix slab out of bounds write in smb_inherit_dacl()
CVE-2023-52754media: imon: fix access to invalid resource for the second interface
CVE-2023-52753drm/amd/display: Avoid NULL dereference of timing generator
CVE-2023-52752smb: client: fix use-after-free bug in cifs_debug_data_proc_show()
CVE-2023-52751smb: client: fix use-after-free in smb2_query_info_compound()
CVE-2023-52750arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer
CVE-2023-52749spi: Fix null dereference on suspend
CVE-2023-52748f2fs: avoid format-overflow warning
CVE-2022-48710drm/radeon: fix a possible null pointer dereference
CVE-2021-47432lib/generic-radix-tree.c: Don't overflow in peek()
CVE-2023-52743ice: Do not use WQ_MEM_RECLAIM flag for workqueue
CVE-2023-52737btrfs: lock the inode in shared mode before starting fiemap
CVE-2023-52738drm/amdgpu/fence: Fix oops due to non-matching drm_sched init/fini
CVE-2023-52740powerpc/64s/interrupt: Fix interrupt exit race with security mitigation switch
CVE-2023-52739Fix page corruption caused by racy check in __free_pages
CVE-2023-52741cifs: Fix use-after-free in rdata->read_into_pages()
CVE-2023-52744RDMA/irdma: Fix potential NULL-ptr-dereference
CVE-2023-52745IB/IPoIB: Fix legacy IPoIB due to wrong number of queues

Showing top 20 of 361 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2023-52855

No comments yet


Leave a comment