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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2021-47531— drm/msm: Fix mmap to include VM_IO and VM_DONTDUMP

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 存在安全漏洞,该漏洞源于 drm/msm 模块存在漏洞。

AI Predicted 5.5 Difficulty: Trivial EPSS 0.21% · P10

Possible ATT&CK Techniques 1 AI

T1056.002 · GUI Input Capture

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux 510410bfc034c57cc3caf1572aa47c1017bab2f9< 8e2b7fe5e8a4be5e571561d9afcfbd92097288ba affected
510410bfc034c57cc3caf1572aa47c1017bab2f9< 3466d9e217b337bf473ee629c608e53f9f3ab786 affected
5.15 affected
< 5.15 unaffected
5.15.7≤ 5.15.* unaffected
5.16≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2021-47531

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
drm/msm: Fix mmap to include VM_IO and VM_DONTDUMP
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: drm/msm: Fix mmap to include VM_IO and VM_DONTDUMP In commit 510410bfc034 ("drm/msm: Implement mmap as GEM object function") we switched to a new/cleaner method of doing things. That's good, but we missed a little bit. Before that commit, we used to _first_ run through the drm_gem_mmap_obj() case where `obj->funcs->mmap()` was NULL. That meant that we ran: vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags)); vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); ...and _then_ we modified those mappings with our own. Now that `obj->funcs->mmap()` is no longer NULL we don't run the default code. It looks like the fact that the vm_flags got VM_IO / VM_DONTDUMP was important because we're now getting crashes on Chromebooks that use ARC++ while logging out. Specifically a crash that looks like this (this is on a 5.10 kernel w/ relevant backports but also seen on a 5.15 kernel): Unable to handle kernel paging request at virtual address ffffffc008000000 Mem abort info: ESR = 0x96000006 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 Data abort info: ISV = 0, ISS = 0x00000006 CM = 0, WnR = 0 swapper pgtable: 4k pages, 39-bit VAs, pgdp=000000008293d000 [ffffffc008000000] pgd=00000001002b3003, p4d=00000001002b3003, pud=00000001002b3003, pmd=0000000000000000 Internal error: Oops: 96000006 [#1] PREEMPT SMP [...] CPU: 7 PID: 15734 Comm: crash_dump64 Tainted: G W 5.10.67 #1 [...] Hardware name: Qualcomm Technologies, Inc. sc7280 IDP SKU2 platform (DT) pstate: 80400009 (Nzcv daif +PAN -UAO -TCO BTYPE=--) pc : __arch_copy_to_user+0xc0/0x30c lr : copyout+0xac/0x14c [...] Call trace: __arch_copy_to_user+0xc0/0x30c copy_page_to_iter+0x1a0/0x294 process_vm_rw_core+0x240/0x408 process_vm_rw+0x110/0x16c __arm64_sys_process_vm_readv+0x30/0x3c el0_svc_common+0xf8/0x250 do_el0_svc+0x30/0x80 el0_svc+0x10/0x1c el0_sync_handler+0x78/0x108 el0_sync+0x184/0x1c0 Code: f8408423 f80008c3 910020c6 36100082 (b8404423) Let's add the two flags back in. While we're at it, the fact that we aren't running the default means that we _don't_ need to clear out VM_PFNMAP, so remove that and save an instruction. NOTE: it was confirmed that VM_IO was the important flag to fix the problem I was seeing, but adding back VM_DONTDUMP seems like a sane thing to do so I'm doing that too.
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 存在安全漏洞,该漏洞源于 drm/msm 模块存在漏洞。
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 510410bfc034c57cc3caf1572aa47c1017bab2f9 ~ 8e2b7fe5e8a4be5e571561d9afcfbd92097288ba -
Linux Linux 5.15 -

II. Public POCs for CVE-2021-47531

# 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-47531

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

Other References for CVE-2021-47531 (2)

Same Patch Batch · Linux · 2024-05-24 · 72 CVEs total

CVE-2021-47544 9.8 CRITICAL tcp: fix page frag corruption on page fault
CVE-2021-47536 9.8 CRITICAL net/smc: fix wrong list_del in smc_lgr_cleanup_early
CVE-2021-47506 9.8 CRITICAL nfsd: fix use-after-free due to delegation race
CVE-2021-47520 8.8 HIGH can: pch_can: pch_can_rx_normal: fix use after free
CVE-2021-47552 7.8 HIGH blk-mq: cancel blk-mq dispatch work in both blk_cleanup_queue and disk_release()
CVE-2021-47502 7.8 HIGH ASoC: codecs: wcd934x: handle channel mappping list correctly
CVE-2021-47512 7.8 HIGH net/sched: fq_pie: prevent dismantle issue
CVE-2021-47517 7.8 HIGH ethtool: do not perform operations on net devices being unregistered
CVE-2021-47561 7.8 HIGH i2c: virtio: disable timeout handling
CVE-2021-47555 7.8 HIGH net: vlan: fix underflow for the real_dev refcnt
CVE-2021-47551 7.8 HIGH drm/amd/amdkfd: Fix kernel panic when reset failed and been triggered again
CVE-2021-47533 7.8 HIGH drm/vc4: kms: Clear the HVS FIFO commit pointer once done
CVE-2021-47535 7.8 HIGH drm/msm/a6xx: Allocate enough space for GMU registers
CVE-2021-47500 7.8 HIGH iio: mma8452: Fix trigger reference couting
CVE-2021-47541 7.8 HIGH net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources()
CVE-2023-52880 7.8 HIGH tty: n_gsm: require CAP_NET_ADMIN to attach N_GSM0710 ldisc
CVE-2021-47505 7.8 HIGH aio: fix use-after-free due to missing POLLFREE handling
CVE-2021-47515 7.5 HIGH seg6: fix the iif in the IPv6 socket control block
CVE-2021-47559 7.5 HIGH net/smc: Fix NULL pointer dereferencing in smc_vlan_by_tcpsk()
CVE-2021-47568 ksmbd: fix memleak in get_file_stream_info()

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

IV. Related Vulnerabilities

V. Comments for CVE-2021-47531

No comments yet


Leave a comment