{"id":41217,"date":"2026-10-19T00:32:39","date_gmt":"2026-10-18T16:32:39","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98745"},"modified":"2026-10-19T00:32:39","modified_gmt":"2026-10-18T16:32:39","slug":"cve-2026-98745","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98745","title":{"rendered":"CVE-2026-98745 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\narm64\/fpsimd: signal:"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>arm64\/fpsimd: signal: Forbid non-streaming SVE payload on SME-only systems<\/p>\n<p>When system_supports_sme() is true but system_supports_sve() is false,<br \/>\nrestoring a specifically crafted SVE signal context can result in the<br \/>\ntask erroneously having non-streaming SVE state. Subsequent attempts to<br \/>\nmanipulate the task&#8217;s FPSIMD\/SVE\/SME state can result in a variety of<br \/>\nproblems, including fatal EL1 UNDEFs.<\/p>\n<p>In such configurations, the kernel always creates an SVE signal context<br \/>\nwhen delivering a signal, and this can only be in one of two states:<\/p>\n<p>(1) SVE_SIG_FLAG_SM is set, and an SVE payload is present containing<br \/>\n    streaming mode SVE state. The recorded VL is the task&#8217;s live<br \/>\n    streaming VL.<\/p>\n<p>(2) SVE_SIG_FLAG_SM is clear, and an SVE payload is not present. The<br \/>\n    FPSIMD context contains the non-streaming mode FPSIMD state. The<br \/>\n    recorded VL is 0.<\/p>\n<p>Currently restore_sve_fpsimd_context() correctly rejects cases where<br \/>\nSVE_SIG_FLAG_SM is set and an SVE payload is not present, but fails to<br \/>\nreject cases where SVE_SIG_FLAG_SM is clear and an SVE payload is<br \/>\npresent. Consequently, restore_sve_fpsimd_context() can place the task<br \/>\nin a state where it has non-streaming SVE state even when this is not<br \/>\nsupported by HW.<\/p>\n<p>For example, this can cause a later EL1 UNDEF when the kernel attempts to<br \/>\nrestore the task&#8217;s ZCR_EL1 value:<\/p>\n<p>| # .\/sme-sigcontext-to-sve<br \/>\n| Internal error: Oops &#8211; Undefined instruction: 0000000002000000 [#1]  SMP<br \/>\n| Modules linked in:<br \/>\n| CPU: 0 UID: 0 PID: 131 Comm: sme-sigcontext- Not tainted 7.3.0-rc1 #1 PREEMPT<br \/>\n| Hardware name: linux,dummy-virt (DT)<br \/>\n| pstate: 61402009 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=&#8211;)<br \/>\n| pc : fpsimd_restore_current_state+0x258\/0x458<br \/>\n| lr : exit_to_user_mode_loop+0xb8\/0x188<br \/>\n| sp : ffff80008056be40<br \/>\n| x29: ffff80008056be40 x28: fff00000c1670000 x27: 0000000000000000<br \/>\n| x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000<br \/>\n| x23: ffff80008056bec0 x22: 0000000000000008 x21: 0000000000000040<br \/>\n| x20: 0000000000000081 x19: 0000000008800010 x18: 0000000000000000<br \/>\n| x17: 0000fffffd412570 x16: 0000000000001000 x15: 0000fffffd4123b0<br \/>\n| x14: 0000fffffd412780 x13: 0000fffffd412be8 x12: 0000000047435300<br \/>\n| x11: 0000fffffd412570 x10: 0000000000000000 x9 : 0000000045585401<br \/>\n| x8 : fff00000c18a6c44 x7 : 0000000000000000 x6 : 0000000000000002<br \/>\n| x5 : 0000000000000002 x4 : ffff800080568000 x3 : 0000000000000001<br \/>\n| x2 : 0000000008800010 x1 : fff00000c1670000 x0 : 0000000008800000<br \/>\n| Call trace:<br \/>\n|  fpsimd_restore_current_state+0x258\/0x458 (P)<br \/>\n|  exit_to_user_mode_loop+0xb8\/0x188<br \/>\n|  el0_svc+0x1cc\/0x1d0<br \/>\n|  el0t_64_sync_handler+0xa0\/0xe4<br \/>\n|  el0t_64_sync+0x198\/0x19c<br \/>\n| Code: d5384101 f9400020 53175c03 36b80de0 (d5381202)<br \/>\n| &#8212;[ end trace 0000000000000000 ]&#8212;<br \/>\n| Kernel panic &#8211; not syncing: Oops &#8211; Undefined instruction: Fatal exception in interrupt<br \/>\n| Kernel Offset: 0x291fb1000000 from 0xffff800080000000<br \/>\n| PHYS_OFFSET: 0x40000000<br \/>\n| CPU features: 0x0,00000000,0052802f,ffb88f43,3afcf73f<br \/>\n| Memory Limit: none<\/p>\n<p>Rework restore_sve_fpsimd_context() to reject cases where<br \/>\nSVE_SIG_FLAG_SM is clear and an SVE payload is not present. As<br \/>\nparse_user_sigframe() rejects SVE signal frames when neither SVE nor SME<br \/>\nare supported, it isn&#8217;t necessary for restore_sve_fpsimd_context() to<br \/>\nhandle the case where neither are supported.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>arm64\/fpsimd: signal: Forbid non-streaming SVE payload on SME-only systems<\/p>\n<p>When system_supports_sme() is true but system_supports_<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41217","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}