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

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2023-53642— x86: fix clear_user_rep_good() exception handling annotation

AI Predicted 5.5 Difficulty: Hard EPSS 0.15% · P4

Affected Version Matrix 10

VendorProductVersion RangeStatus
LinuxLinux0db7058e8e23e6bbab1b4747ecabd1784c34f50b< 76ce32682635fe907e0f8e64e039e773e5c7508faffected
0db7058e8e23e6bbab1b4747ecabd1784c34f50b< 90510aed20a26e1a4dede4ef6b640e6a4122f38faffected
0db7058e8e23e6bbab1b4747ecabd1784c34f50b< b805d212c394f291f116b12c53401e7ba0c4d408affected
0db7058e8e23e6bbab1b4747ecabd1784c34f50b< e046fe5a36a970bc14fbfbcb2074a48776f6b671affected
6.1affected
< 6.1unaffected
6.1.29≤ 6.1.*unaffected
6.2.16≤ 6.2.*unaffected
… +2 more rows
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2023-53642

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
x86: fix clear_user_rep_good() exception handling annotation
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: x86: fix clear_user_rep_good() exception handling annotation This code no longer exists in mainline, because it was removed in commit d2c95f9d6802 ("x86: don't use REP_GOOD or ERMS for user memory clearing") upstream. However, rather than backport the full range of x86 memory clearing and copying cleanups, fix the exception table annotation placement for the final 'rep movsb' in clear_user_rep_good(): rather than pointing at the actual instruction that did the user space access, it pointed to the register move just before it. That made sense from a code flow standpoint, but not from an actual usage standpoint: it means that if user access takes an exception, the exception handler won't actually find the instruction in the exception tables. As a result, rather than fixing it up and returning -EFAULT, it would then turn it into a kernel oops report instead, something like: BUG: unable to handle page fault for address: 0000000020081000 #PF: supervisor write access in kernel mode #PF: error_code(0x0002) - not-present page ... RIP: 0010:clear_user_rep_good+0x1c/0x30 arch/x86/lib/clear_page_64.S:147 ... Call Trace: __clear_user arch/x86/include/asm/uaccess_64.h:103 [inline] clear_user arch/x86/include/asm/uaccess_64.h:124 [inline] iov_iter_zero+0x709/0x1290 lib/iov_iter.c:800 iomap_dio_hole_iter fs/iomap/direct-io.c:389 [inline] iomap_dio_iter fs/iomap/direct-io.c:440 [inline] __iomap_dio_rw+0xe3d/0x1cd0 fs/iomap/direct-io.c:601 iomap_dio_rw+0x40/0xa0 fs/iomap/direct-io.c:689 ext4_dio_read_iter fs/ext4/file.c:94 [inline] ext4_file_read_iter+0x4be/0x690 fs/ext4/file.c:145 call_read_iter include/linux/fs.h:2183 [inline] do_iter_readv_writev+0x2e0/0x3b0 fs/read_write.c:733 do_iter_read+0x2f2/0x750 fs/read_write.c:796 vfs_readv+0xe5/0x150 fs/read_write.c:916 do_preadv+0x1b6/0x270 fs/read_write.c:1008 __do_sys_preadv2 fs/read_write.c:1070 [inline] __se_sys_preadv2 fs/read_write.c:1061 [inline] __x64_sys_preadv2+0xef/0x150 fs/read_write.c:1061 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd which then looks like a filesystem bug rather than the incorrect exception annotation that it is. [ The alternative to this one-liner fix is to take the upstream series that cleans this all up: 68674f94ffc9 ("x86: don't use REP_GOOD or ERMS for small memory copies") 20f3337d350c ("x86: don't use REP_GOOD or ERMS for small memory clearing") adfcf4231b8c ("x86: don't use REP_GOOD or ERMS for user memory copies") * d2c95f9d6802 ("x86: don't use REP_GOOD or ERMS for user memory clearing") 3639a535587d ("x86: move stac/clac from user copy routines into callers") 577e6a7fd50d ("x86: inline the 'rep movs' in user copies for the FSRM case") 8c9b6a88b7e2 ("x86: improve on the non-rep 'clear_user' function") 427fda2c8a49 ("x86: improve on the non-rep 'copy_user' function") * e046fe5a36a9 ("x86: set FSRS automatically on AMD CPUs that have FSRM") e1f2750edc4a ("x86: remove 'zerorest' argument from __copy_user_nocache()") 034ff37d3407 ("x86: rewrite '__copy_user_nocache' function") with either the whole series or at a minimum the two marked commits being needed to fix this issue ]
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

VendorProductAffected VersionsCPESubscribe
LinuxLinux 0db7058e8e23e6bbab1b4747ecabd1784c34f50b ~ 76ce32682635fe907e0f8e64e039e773e5c7508f -
LinuxLinux 6.1 -

II. Public POCs for CVE-2023-53642

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2023-53642

登录查看更多情报信息。

Patches & Fixes for CVE-2023-53642 (1)

Other References for CVE-2023-53642 (1)

Same Patch Batch · Linux · 2025-10-07 · 118 CVEs total

CVE-2023-536299.8 CRITICALfs: dlm: fix use after free in midcomms commit
CVE-2023-536308.8 HIGHiommufd: Fix unpinning of pages when an access is present
CVE-2023-536768.8 HIGHscsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()
CVE-2023-536758.8 HIGHscsi: ses: Fix possible desc_ptr out-of-bounds accesses
CVE-2023-536738.8 HIGHBluetooth: hci_event: call disconnect callback before deleting conn
CVE-2023-536798.3 HIGHwifi: mt7601u: fix an integer underflow
CVE-2023-536358.2 HIGHnetfilter: conntrack: fix wrong ct->timeout value
CVE-2022-505557.8 HIGHtipc: fix a null-ptr-deref in tipc_topsrv_accept
CVE-2023-536597.8 HIGHiavf: Fix out-of-bounds when setting channels on remove
CVE-2023-536197.8 HIGHnetfilter: conntrack: Avoid nf_ct_helper_hash uses after free
CVE-2023-536437.8 HIGHnvme-tcp: don't access released socket during error recovery
CVE-2023-536607.8 HIGHbpf, cpumap: Handle skb as well when clean up ptr_ring
CVE-2023-536457.8 HIGHbpf: Make bpf_refcount_acquire fallible for non-owning refs
CVE-2023-536467.8 HIGHdrm/i915/perf: add sentinel to xehp_oa_b_counters
CVE-2023-536697.8 HIGHtcp: fix skb_copy_ubufs() vs BIG TCP
CVE-2023-536267.8 HIGHext4: fix possible double unlock when moving a directory
CVE-2023-536277.8 HIGHscsi: hisi_sas: Grab sas_dev lock when traversing the members of sas_dev.list
CVE-2022-505287.8 HIGHdrm/amdkfd: Fix memory leakage
CVE-2023-536837.8 HIGHfs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode()
CVE-2022-505437.8 HIGHRDMA/rxe: Fix mr->map double free

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

IV. Related Vulnerabilities

V. Comments for CVE-2023-53642

No comments yet


Leave a comment