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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-50275— arm64/sve: Discard stale CPU state when handling SVE traps

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

I. Basic Information for CVE-2024-50275

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
arm64/sve: Discard stale CPU state when handling SVE traps
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: arm64/sve: Discard stale CPU state when handling SVE traps The logic for handling SVE traps manipulates saved FPSIMD/SVE state incorrectly, and a race with preemption can result in a task having TIF_SVE set and TIF_FOREIGN_FPSTATE clear even though the live CPU state is stale (e.g. with SVE traps enabled). This has been observed to result in warnings from do_sve_acc() where SVE traps are not expected while TIF_SVE is set: | if (test_and_set_thread_flag(TIF_SVE)) | WARN_ON(1); /* SVE access shouldn't have trapped */ Warnings of this form have been reported intermittently, e.g. https://lore.kernel.org/linux-arm-kernel/CA+G9fYtEGe_DhY2Ms7+L7NKsLYUomGsgqpdBj+QwDLeSg=JhGg@mail.gmail.com/ https://lore.kernel.org/linux-arm-kernel/000000000000511e9a060ce5a45c@google.com/ The race can occur when the SVE trap handler is preempted before and after manipulating the saved FPSIMD/SVE state, starting and ending on the same CPU, e.g. | void do_sve_acc(unsigned long esr, struct pt_regs *regs) | { | // Trap on CPU 0 with TIF_SVE clear, SVE traps enabled | // task->fpsimd_cpu is 0. | // per_cpu_ptr(&fpsimd_last_state, 0) is task. | | ... | | // Preempted; migrated from CPU 0 to CPU 1. | // TIF_FOREIGN_FPSTATE is set. | | get_cpu_fpsimd_context(); | | if (test_and_set_thread_flag(TIF_SVE)) | WARN_ON(1); /* SVE access shouldn't have trapped */ | | sve_init_regs() { | if (!test_thread_flag(TIF_FOREIGN_FPSTATE)) { | ... | } else { | fpsimd_to_sve(current); | current->thread.fp_type = FP_STATE_SVE; | } | } | | put_cpu_fpsimd_context(); | | // Preempted; migrated from CPU 1 to CPU 0. | // task->fpsimd_cpu is still 0 | // If per_cpu_ptr(&fpsimd_last_state, 0) is still task then: | // - Stale HW state is reused (with SVE traps enabled) | // - TIF_FOREIGN_FPSTATE is cleared | // - A return to userspace skips HW state restore | } Fix the case where the state is not live and TIF_FOREIGN_FPSTATE is set by calling fpsimd_flush_task_state() to detach from the saved CPU state. This ensures that a subsequent context switch will not reuse the stale CPU state, and will instead set TIF_FOREIGN_FPSTATE, forcing the new state to be reloaded from memory prior to a return to userspace.
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存在安全漏洞,该漏洞源于处理SVE陷阱时的陈旧CPU状态存在问题。
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 cccb78ce89c45a4414db712be4986edfb92434bd ~ 51d3d80a6dc314982a9a0aeb0961085922a1aa15 -
LinuxLinux 5.13 -

II. Public POCs for CVE-2024-50275

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-50275

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-11-19 · 88 CVEs total

CVE-2024-53057net/sched: stop qdisc_tree_reduce_backlog on TC_H_ROOT
CVE-2024-53053scsi: ufs: core: Fix another deadlock during RTC update
CVE-2024-53055wifi: iwlwifi: mvm: fix 6 GHz scan construction
CVE-2024-53052io_uring/rw: fix missing NOWAIT check for O_DIRECT start write
CVE-2024-53048ice: fix crash on probe for DPLL enabled E810 LOM
CVE-2024-53049slub/kunit: fix a WARNING due to unwrapped __kmalloc_cache_noprof
CVE-2024-53047mptcp: init: protect sched with rcu_read_lock
CVE-2024-53045ASoC: dapm: fix bounds checker error in dapm_widget_list_create
CVE-2024-53046arm64: dts: imx8ulp: correct the flexspi compatible string
CVE-2024-53051drm/i915/hdcp: Add encoder check in intel_hdcp_get_capability
CVE-2024-53056drm/mediatek: Fix potential NULL dereference in mtk_crtc_destroy()
CVE-2024-53058net: stmmac: TSO: Fix unbalanced DMA map/unmap for non-paged SKB data
CVE-2024-53059wifi: iwlwifi: mvm: Fix response handling in iwl_mvm_send_recovery_cmd()
CVE-2024-53060drm/amdgpu: prevent NULL pointer dereference if ATIF is not supported
CVE-2024-53061media: s5p-jpeg: prevent buffer overflows
CVE-2024-53062media: mgb4: protect driver against spectre
CVE-2024-53064idpf: fix idpf_vc_core_init error path
CVE-2024-53063media: dvbdev: prevent the risk of out of memory access
CVE-2024-53066nfs: Fix KMSAN warning in decode_getfattr_attrs()
CVE-2024-53065mm/slab: fix warning caused by duplicate kmem_cache creation in kmem_buckets_create

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

IV. Related Vulnerabilities

V. Comments for CVE-2024-50275

No comments yet


Leave a comment