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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2022-50220— usbnet: Fix linkwatch use-after-free on disconnect

EPSS 0.06% · P19
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2022-50220

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
usbnet: Fix linkwatch use-after-free on disconnect
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: usbnet: Fix linkwatch use-after-free on disconnect usbnet uses the work usbnet_deferred_kevent() to perform tasks which may sleep. On disconnect, completion of the work was originally awaited in ->ndo_stop(). But in 2003, that was moved to ->disconnect() by historic commit "[PATCH] USB: usbnet, prevent exotic rtnl deadlock": https://git.kernel.org/tglx/history/c/0f138bbfd83c The change was made because back then, the kernel's workqueue implementation did not allow waiting for a single work. One had to wait for completion of *all* work by calling flush_scheduled_work(), and that could deadlock when waiting for usbnet_deferred_kevent() with rtnl_mutex held in ->ndo_stop(). The commit solved one problem but created another: It causes a use-after-free in USB Ethernet drivers aqc111.c, asix_devices.c, ax88179_178a.c, ch9200.c and smsc75xx.c: * If the drivers receive a link change interrupt immediately before disconnect, they raise EVENT_LINK_RESET in their (non-sleepable) ->status() callback and schedule usbnet_deferred_kevent(). * usbnet_deferred_kevent() invokes the driver's ->link_reset() callback, which calls netif_carrier_{on,off}(). * That in turn schedules the work linkwatch_event(). Because usbnet_deferred_kevent() is awaited after unregister_netdev(), netif_carrier_{on,off}() may operate on an unregistered netdev and linkwatch_event() may run after free_netdev(), causing a use-after-free. In 2010, usbnet was changed to only wait for a single instance of usbnet_deferred_kevent() instead of *all* work by commit 23f333a2bfaf ("drivers/net: don't use flush_scheduled_work()"). Unfortunately the commit neglected to move the wait back to ->ndo_stop(). Rectify that omission at long last.
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存在安全漏洞,该漏洞源于usbnet在断开连接时使用已释放的linkwatch,可能导致释放后重用。
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 23f333a2bfafba80339315b724808982a9de57d9 ~ d2d6b530d89b0a912148018027386aa049f0a309 -
LinuxLinux 2.6.38 -

II. Public POCs for CVE-2022-50220

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2022-50220

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-06-18 · 362 CVEs total

CVE-2022-50103sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed
CVE-2022-50114net: 9p: fix refcount leak in p9_read_work() error handling
CVE-2022-50113ASoc: audio-graph-card2: Fix refcount leak bug in __graph_get_type()
CVE-2022-50112rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
CVE-2022-50111ASoC: mt6359: Fix refcount leak bug
CVE-2022-50110watchdog: sp5100_tco: Fix a memory leak of EFCH MMIO resource
CVE-2022-50109video: fbdev: amba-clcd: Fix refcount leak bugs
CVE-2022-50108mfd: max77620: Fix refcount leak in max77620_initialise_fps
CVE-2022-50106powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
CVE-2022-50107cifs: Fix memory leak when using fscache
CVE-2022-50105powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader
CVE-2022-50104powerpc/xive: Fix refcount leak in xive_get_max_prio
CVE-2022-50098scsi: qla2xxx: Fix crash due to stale SRB access around I/O timeouts
CVE-2022-50093iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
CVE-2022-50095posix-cpu-timers: Cleanup CPU timers before freeing them during exec
CVE-2022-50094spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
CVE-2022-50096x86/kprobes: Update kcb status flag after singlestepping
CVE-2022-50097video: fbdev: s3fb: Check the size of screen before memset_io()
CVE-2022-50100sched/core: Do not requeue task on CPU excluded from cpus_mask
CVE-2022-50102video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()

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

IV. Related Vulnerabilities

V. Comments for CVE-2022-50220

No comments yet


Leave a comment