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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2021-46938— dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞,该漏洞源于存在双重释放问题。

AI Predicted 4.4 Difficulty: Moderate EPSS 0.25% · P15

Affected Version Matrix 18

VendorProduct Version RangeStatus
Linux Linux 1c357a1e86a4227a6b6059f2de118ae47659cebc< 8ae0185255eaf05bd66f4215c81e99bf01140fd9 affected
1c357a1e86a4227a6b6059f2de118ae47659cebc< b42c0a33dfdd451d9be62dd5de58c39f2750b6e3 affected
1c357a1e86a4227a6b6059f2de118ae47659cebc< 772b9f59657665af3b68d24d12b9d172d31f0dfb affected
1c357a1e86a4227a6b6059f2de118ae47659cebc< a992a283c0b77d0a7c2c348add0e6a21fb1dab67 affected
1c357a1e86a4227a6b6059f2de118ae47659cebc< 1cb02dc76f4c0a2749a02b26469512d6984252e9 affected
1c357a1e86a4227a6b6059f2de118ae47659cebc< 6086f957416a6e87236c06079fcaba7a3998aeca affected
1c357a1e86a4227a6b6059f2de118ae47659cebc< d757bf4c69cda3c3ab7f775dfabbf5a80e2f6f9d affected
1c357a1e86a4227a6b6059f2de118ae47659cebc< 8e947c8f4a5620df77e43c9c75310dc510250166 affected
… +10 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2021-46938

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
dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails When loading a device-mapper table for a request-based mapped device, and the allocation/initialization of the blk_mq_tag_set for the device fails, a following device remove will cause a double free. E.g. (dmesg): device-mapper: core: Cannot initialize queue for request-based dm-mq mapped device device-mapper: ioctl: unable to set up device queue for new table. Unable to handle kernel pointer dereference in virtual kernel address space Failing address: 0305e098835de000 TEID: 0305e098835de803 Fault in home space mode while using kernel ASCE. AS:000000025efe0007 R3:0000000000000024 Oops: 0038 ilc:3 [#1] SMP Modules linked in: ... lots of modules ... Supported: Yes, External CPU: 0 PID: 7348 Comm: multipathd Kdump: loaded Tainted: G W X 5.3.18-53-default #1 SLE15-SP3 Hardware name: IBM 8561 T01 7I2 (LPAR) Krnl PSW : 0704e00180000000 000000025e368eca (kfree+0x42/0x330) R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 RI:0 EA:3 Krnl GPRS: 000000000000004a 000000025efe5230 c1773200d779968d 0000000000000000 000000025e520270 000000025e8d1b40 0000000000000003 00000007aae10000 000000025e5202a2 0000000000000001 c1773200d779968d 0305e098835de640 00000007a8170000 000003ff80138650 000000025e5202a2 000003e00396faa8 Krnl Code: 000000025e368eb8: c4180041e100 lgrl %r1,25eba50b8 000000025e368ebe: ecba06b93a55 risbg %r11,%r10,6,185,58 #000000025e368ec4: e3b010000008 ag %r11,0(%r1) >000000025e368eca: e310b0080004 lg %r1,8(%r11) 000000025e368ed0: a7110001 tmll %r1,1 000000025e368ed4: a7740129 brc 7,25e369126 000000025e368ed8: e320b0080004 lg %r2,8(%r11) 000000025e368ede: b904001b lgr %r1,%r11 Call Trace: [<000000025e368eca>] kfree+0x42/0x330 [<000000025e5202a2>] blk_mq_free_tag_set+0x72/0xb8 [<000003ff801316a8>] dm_mq_cleanup_mapped_device+0x38/0x50 [dm_mod] [<000003ff80120082>] free_dev+0x52/0xd0 [dm_mod] [<000003ff801233f0>] __dm_destroy+0x150/0x1d0 [dm_mod] [<000003ff8012bb9a>] dev_remove+0x162/0x1c0 [dm_mod] [<000003ff8012a988>] ctl_ioctl+0x198/0x478 [dm_mod] [<000003ff8012ac8a>] dm_ctl_ioctl+0x22/0x38 [dm_mod] [<000000025e3b11ee>] ksys_ioctl+0xbe/0xe0 [<000000025e3b127a>] __s390x_sys_ioctl+0x2a/0x40 [<000000025e8c15ac>] system_call+0xd8/0x2c8 Last Breaking-Event-Address: [<000000025e52029c>] blk_mq_free_tag_set+0x6c/0xb8 Kernel panic - not syncing: Fatal exception: panic_on_oops When allocation/initialization of the blk_mq_tag_set fails in dm_mq_init_request_queue(), it is uninitialized/freed, but the pointer is not reset to NULL; so when dev_remove() later gets into dm_mq_cleanup_mapped_device() it sees the pointer and tries to uninitialize and free it again. Fix this by setting the pointer to NULL in dm_mq_init_request_queue() error-handling. Also set it to NULL in dm_mq_cleanup_mapped_device().
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
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

Vendor Product Affected Versions CPE Subscribe
Linux Linux 1c357a1e86a4227a6b6059f2de118ae47659cebc ~ 8ae0185255eaf05bd66f4215c81e99bf01140fd9 -
Linux Linux 4.6 -

II. Public POCs for CVE-2021-46938

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2021-46938

请登录查看更多情报信息。

Other References for CVE-2021-46938 (8)

Same Patch Batch · Linux · 2024-02-27 · 67 CVEs total

CVE-2021-46911 9.8 CRITICAL ch_ktls: Fix kernel panic
CVE-2021-46955 8.2 HIGH openvswitch: fix stack OOB read while fragmenting IPv4 packets
CVE-2021-46963 7.8 HIGH scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand()
CVE-2021-46925 7.8 HIGH net/smc: fix kernel panic caused by race of smc_sock
CVE-2021-46929 7.8 HIGH sctp: use call_rcu to free endpoint
CVE-2021-46913 7.8 HIGH netfilter: nftables: clone set element expression template
CVE-2021-46973 7.8 HIGH net: qrtr: Avoid potential use after free in MHI send
CVE-2021-46936 7.8 HIGH net: fix use-after-free in tw_timer_handler
CVE-2021-46933 7.8 HIGH usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
CVE-2021-46969 7.8 HIGH bus: mhi: core: Fix invalid error returning in mhi_queue
CVE-2021-46958 7.8 HIGH btrfs: fix race between transaction aborts and fsyncs leading to use-after-free
CVE-2021-46967 7.8 HIGH vhost-vdpa: fix vm_flags for virtqueue doorbell mapping
CVE-2021-46921 7.8 HIGH locking/qrwlock: Fix ordering in queued_write_lock_slowpath()
CVE-2021-46922 7.8 HIGH KEYS: trusted: Fix TPM reservation for seal/unseal
CVE-2021-46948 7.5 HIGH sfc: farch: fix TX queue lookup in TX event handling
CVE-2021-46960 7.5 HIGH cifs: Return correct error code from smb2_get_enc_key
CVE-2021-46912 7.3 HIGH net: Make tcp_allowed_congestion_control readonly in non-init netns
CVE-2021-46908 7.1 HIGH bpf: Use correct permission flag for mixed signed bounds arithmetic
CVE-2021-46974 7.1 HIGH bpf: Fix masking negation logic upon negative dst register
CVE-2021-46910 7.0 HIGH ARM: 9063/1: mm: reduce maximum number of CPUs if DEBUG_KMAP_LOCAL is enabled

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

IV. Related Vulnerabilities

V. Comments for CVE-2021-46938

No comments yet


Leave a comment