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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-47162— tipc: skb_linearize the head skb when reassembling msgs

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

I. Basic Information for CVE-2021-47162

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
tipc: skb_linearize the head skb when reassembling msgs
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: tipc: skb_linearize the head skb when reassembling msgs It's not a good idea to append the frag skb to a skb's frag_list if the frag_list already has skbs from elsewhere, such as this skb was created by pskb_copy() where the frag_list was cloned (all the skbs in it were skb_get'ed) and shared by multiple skbs. However, the new appended frag skb should have been only seen by the current skb. Otherwise, it will cause use after free crashes as this appended frag skb are seen by multiple skbs but it only got skb_get called once. The same thing happens with a skb updated by pskb_may_pull() with a skb_cloned skb. Li Shuang has reported quite a few crashes caused by this when doing testing over macvlan devices: [] kernel BUG at net/core/skbuff.c:1970! [] Call Trace: [] skb_clone+0x4d/0xb0 [] macvlan_broadcast+0xd8/0x160 [macvlan] [] macvlan_process_broadcast+0x148/0x150 [macvlan] [] process_one_work+0x1a7/0x360 [] worker_thread+0x30/0x390 [] kernel BUG at mm/usercopy.c:102! [] Call Trace: [] __check_heap_object+0xd3/0x100 [] __check_object_size+0xff/0x16b [] simple_copy_to_iter+0x1c/0x30 [] __skb_datagram_iter+0x7d/0x310 [] __skb_datagram_iter+0x2a5/0x310 [] skb_copy_datagram_iter+0x3b/0x90 [] tipc_recvmsg+0x14a/0x3a0 [tipc] [] ____sys_recvmsg+0x91/0x150 [] ___sys_recvmsg+0x7b/0xc0 [] kernel BUG at mm/slub.c:305! [] Call Trace: [] <IRQ> [] kmem_cache_free+0x3ff/0x400 [] __netif_receive_skb_core+0x12c/0xc40 [] ? kmem_cache_alloc+0x12e/0x270 [] netif_receive_skb_internal+0x3d/0xb0 [] ? get_rx_page_info+0x8e/0xa0 [be2net] [] be_poll+0x6ef/0xd00 [be2net] [] ? irq_exit+0x4f/0x100 [] net_rx_action+0x149/0x3b0 ... This patch is to fix it by linearizing the head skb if it has frag_list set in tipc_buf_append(). Note that we choose to do this before calling skb_unshare(), as __skb_linearize() will avoid skb_copy(). Also, we can not just drop the frag_list either as the early time.
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存在安全漏洞,该漏洞源于tipc中存在释放后重用。
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 45c8b7b175ceb2d542e0fe15247377bf3bce29ec ~ b2c8d28c34b3070407cb1741f9ba3f15d0284b8b -
LinuxLinux 4.3 -

II. Public POCs for CVE-2021-47162

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2021-47162

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-03-25 · 40 CVEs total

CVE-2021-47171net: usb: fix memory leak in smsc75xx_bind
CVE-2021-47161spi: spi-fsl-dspi: Fix a resource leak in an error handling path
CVE-2021-47163tipc: wait and exit until all work queues are done
CVE-2021-47164net/mlx5e: Fix null deref accessing lag dev
CVE-2021-47165drm/meson: fix shutdown crash when component not probed
CVE-2021-47166NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce()
CVE-2021-47167NFS: Fix an Oopsable condition in __nfs_pageio_add_request()
CVE-2021-47168NFS: fix an incorrect limit in filelayout_decode_layout()
CVE-2021-47169serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'
CVE-2021-47170USB: usbfs: Don't WARN about excessively large memory allocations
CVE-2021-47160net: dsa: mt7530: fix VLAN traffic leaks
CVE-2021-47172iio: adc: ad7124: Fix potential overflow due to non sequential channel numbers
CVE-2021-47173misc/uss720: fix memory leak in uss720_probe
CVE-2021-47174netfilter: nft_set_pipapo_avx2: Add irq_fpu_usable() check, fallback to non-AVX2 version
CVE-2021-47175net/sched: fq_pie: fix OOB access in the traffic path
CVE-2021-47176s390/dasd: add missing discipline function
CVE-2021-47177iommu/vt-d: Fix sysfs leak in alloc_iommu()
CVE-2021-47178scsi: target: core: Avoid smp_processor_id() in preemptible code
CVE-2021-47179NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()
CVE-2021-47180NFC: nci: fix memory leak in nci_allocate_device

Showing top 20 of 40 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2021-47162

No comments yet


Leave a comment