CVE-2026-23102

HIGHNVD 7.17.1
EchelonGraph scoreMEDIUM confidence

Score 7.1 from GitHub Security Advisory (severity: HIGH) published 2026-02-04. NVD baseline CVSS 7.1; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
7.1EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS: 7.1Exploit: None knownExposed: 0

A fix is available — apply it.

In the Linux kernel, the following vulnerability has been resolved:

arm64/fpsimd: signal: Fix restoration of SVE context

When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds memory (and may potentially take a fatal fault) and/or may kill the task with a SIGKILL.

(1) Restoring a context with SVE_SIG_FLAG_SM set can place the task into an invalid state where SVCR.SM is set (and sve_state is non-NULL) but TIF_SME is clear, consequently resuting in out-of-bounds memory reads and/or killing the task with SIGKILL.

This can only occur in unusual (but legitimate) cases where the SVE signal context has either been modified by userspace or was saved in the context of another task (e.g. as with CRIU), as otherwise the presence of an SVE signal context with SVE_SIG_FLAG_SM implies that TIF_SME is already set.

While in this state, task_fpsimd_load() will NOT configure SMCR_ELx (leaving some arbitrary value configured in hardware) before restoring SVCR and attempting to restore the streaming mode SVE registers from memory via sve_load_state(). As the value of SMCR_ELx.LEN may be larger than the task's streaming SVE vector length, this may read memory outside of the task's allocated sve_state, reading unrelated data and/or triggering a fault.

While this can result in secrets being loaded into streaming SVE registers, these values are never exposed. As TIF_SME is clear, fpsimd_bind_task_to_cpu() will configure CPACR_ELx.SMEN to trap EL0 accesses to streaming mode SVE registers, so these cannot be accessed directly at EL0. As fpsimd_save_user_state() verifies the live vector length before saving (S)SVE state to memory, no secret values can be saved back to memory (and hence cannot be observed via ptrace, signals, etc).

When the live vector length doesn't match the expected vector length for the task, fpsimd_save_user_state() will send a fatal SIGKILL signal to the task. Hence the task may be killed after executing userspace for some period of time.

(2) Restoring a context with SVE_SIG_FLAG_SM clear does not clear the task's SVCR.SM. If SVCR.SM was set prior to restoring the context, then the task will be left in streaming mode unexpectedly, and some register state will be combined inconsistently, though the task will be left in legitimate state from the kernel's PoV.

This can only occur in unusual (but legitimate) cases where ptrace has been used to set SVCR.SM after entry to the sigreturn syscall, as syscall entry clears SVCR.SM.

In these cases, the the provided SVE register data will be loaded into the task's sve_state using the non-streaming SVE vector length and the FPSIMD registers will be merged into this using the streaming SVE vector length.

Fix (1) by setting TIF_SME when setting SVCR.SM. This also requires ensuring that the task's sme_state has been allocated, but as this could contain live ZA state, it should not be zeroed. Fix (2) by clearing SVCR.SM when restoring a SVE signal context with SVE_SIG_FLAG_SM clear.

For consistency, I've pulled the manipulation of SVCR, TIF_SVE, TIF_SME, and fp_type earlier, immediately after the allocation of sve_state/sme_state, before the restore of the actual register state. This makes it easier to ensure that these are always modified consistently, even if a fault is taken while reading the register data from the signal context. I do not expect any software to depend on the exact state restored when a fault is taken while reading the context.

CVSS v3
7.1
EG Score
7.1(medium)
EG Risk
36(Track)
EG Risk 36/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity71% × 45%
Exploitation0% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
2%
KEV
Not listed

Published

February 4, 2026

Last Modified

June 17, 2026

Advisory Details (4)

Auto-updated Aug 6, 2026
No patch confirmed yet.
generic

arm64/fpsimd: signal: Fix restoration of SVE context - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/d2907cbe9ea0a54cbe078076f9d089240ee1e2d9
generic

arm64/fpsimd: signal: Fix restoration of SVE context - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/ce820dd4e6e2d711242dc4331713b9bb4fe06d09
generic

arm64/fpsimd: signal: Fix restoration of SVE context - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/9bc3adba8c35119be80ab20217027720446742f2
generic

arm64/fpsimd: signal: Fix restoration of SVE context - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/7b5a52cf252a0d2e89787b645290ad288878f332

Patch Availability(8)

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Affected Packages

(4 across 4 ecosystems)
Debian:11(1)
PackageVulnerable rangeFixed inDependents
linux-6.16.1.106-3~deb11u1 ... 6.1.159-1~deb11u1 (14 versions)6.1.162-1~deb11u1
Debian:12(1)
PackageVulnerable rangeFixed inDependents
linux6.1.106-1 ... 6.1.99-1 (46 versions)6.1.162-1
Debian:13(1)
PackageVulnerable rangeFixed inDependents
linux6.12.100-1 ... 7.2~rc7-1~exp1 (174 versions)
Debian:14(1)
PackageVulnerable rangeFixed inDependents
linux6.12.100-1 ... 6.18~rc7-1~exp1 (96 versions)6.18.8-1

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

All Vendor Advisories

(14)

Data Freshness Timeline

(refreshed 5× in last 7d / 23× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 173 total refreshes for this CVE.

  1. 2026-09-20 20:15 UTCEPSS rescore
  2. 2026-09-19 16:33 UTCOSV refresh
  3. 2026-09-18 19:27 UTCEPSS rescore
  4. 2026-09-16 14:07 UTCEPSS rescore
  5. 2026-09-16 05:15 UTCEPSS rescore
  6. 2026-09-13 16:47 UTCEPSS rescore
  7. 2026-09-12 15:01 UTCEPSS rescore
  8. 2026-09-11 14:52 UTCEPSS rescore
  9. 2026-09-10 09:34 UTCEPSS rescore
  10. 2026-09-08 22:00 UTCEPSS rescore
  11. 2026-09-07 16:01 UTCEPSS rescore
  12. 2026-09-06 13:47 UTCEPSS rescore
  13. 2026-09-06 13:47 UTCEPSS rescore
  14. 2026-09-04 05:06 UTCEPSS rescore
  15. 2026-09-02 14:11 UTCEPSS rescore
  16. 2026-09-01 13:53 UTCEPSS rescore
  17. 2026-09-01 04:39 UTCEPSS rescore
  18. 2026-08-31 20:04 UTCOSV refresh
  19. 2026-08-30 19:17 UTCEPSS rescore
  20. 2026-08-30 01:22 UTCEPSS rescore
  21. 2026-08-28 21:41 UTCEPSS rescore
  22. 2026-08-27 14:25 UTCEPSS rescore
  23. 2026-08-26 14:46 UTCEPSS rescore
  24. 2026-08-21 23:49 UTCEPSS rescore
  25. 2026-08-20 22:55 UTCEPSS rescore
Show 75 more
  1. 2026-08-19 17:03 UTCEPSS rescore
  2. 2026-08-17 13:47 UTCEPSS rescore
  3. 2026-08-16 14:56 UTCEPSS rescore
  4. 2026-08-16 02:14 UTCEPSS rescore
  5. 2026-08-15 01:30 UTCEPSS rescore
  6. 2026-08-14 22:55 UTCVendor advisory
  7. 2026-08-14 22:55 UTCGHSA enrichment
  8. 2026-08-14 11:13 UTCEG score recompute
  9. 2026-08-14 11:13 UTCVendor advisory
  10. 2026-08-14 11:13 UTCGHSA enrichment
  11. 2026-08-13 22:00 UTCEPSS rescore
  12. 2026-08-13 03:32 UTCEG score recompute
  13. 2026-08-13 03:32 UTCVendor advisory
  14. 2026-08-13 03:32 UTCGHSA enrichment
  15. 2026-08-12 13:50 UTCEPSS rescore
  16. 2026-08-11 13:42 UTCEPSS rescore
  17. 2026-08-11 00:00 UTCEPSS rescore
  18. 2026-08-10 03:15 UTCVendor advisory
  19. 2026-08-10 03:15 UTCGHSA enrichment
  20. 2026-08-09 15:52 UTCEG score recompute
  21. 2026-08-09 15:52 UTCVendor advisory
  22. 2026-08-09 15:52 UTCGHSA enrichment
  23. 2026-08-09 13:46 UTCEPSS rescore
  24. 2026-08-08 16:37 UTCEPSS rescore
  25. 2026-08-08 09:53 UTCVendor advisory
  26. 2026-08-08 09:53 UTCGHSA enrichment
  27. 2026-08-07 22:47 UTCEG score recompute
  28. 2026-08-07 22:47 UTCVendor advisory
  29. 2026-08-07 22:47 UTCGHSA enrichment
  30. 2026-08-06 13:46 UTCEPSS rescore
  31. 2026-08-06 04:23 UTCEG score recompute
  32. 2026-08-06 04:23 UTCVendor advisory
  33. 2026-08-06 04:23 UTCGHSA enrichment
  34. 2026-08-05 19:17 UTCEPSS rescore
  35. 2026-08-04 15:10 UTCEPSS rescore
  36. 2026-08-04 10:38 UTCEPSS rescore
  37. 2026-08-03 10:35 UTCEPSS rescore
  38. 2026-08-02 21:26 UTCEG score recompute
  39. 2026-08-02 21:26 UTCVendor advisory
  40. 2026-08-02 21:26 UTCGHSA enrichment
  41. 2026-08-02 02:26 UTCEPSS rescore
  42. 2026-08-01 04:15 UTCEPSS rescore
  43. 2026-07-31 14:42 UTCOSV refresh
  44. 2026-07-30 01:30 UTCEPSS rescore
  45. 2026-07-27 14:13 UTCEPSS rescore
  46. 2026-07-26 14:54 UTCEPSS rescore
  47. 2026-07-26 14:54 UTCEPSS rescore
  48. 2026-07-24 14:17 UTCEPSS rescore
  49. 2026-07-23 14:18 UTCEPSS rescore
  50. 2026-07-23 14:18 UTCEPSS rescore
  51. 2026-07-23 03:06 UTCEG score recompute
  52. 2026-07-22 14:08 UTCEPSS rescore
  53. 2026-07-21 15:24 UTCEPSS rescore
  54. 2026-07-21 15:24 UTCEPSS rescore
  55. 2026-07-20 17:08 UTCEPSS rescore
  56. 2026-07-19 14:31 UTCEPSS rescore
  57. 2026-07-19 14:31 UTCEPSS rescore
  58. 2026-07-18 10:04 UTCEPSS rescore
  59. 2026-07-18 10:04 UTCEPSS rescore
  60. 2026-07-16 17:03 UTCEPSS rescore
  61. 2026-07-16 17:03 UTCEPSS rescore
  62. 2026-07-15 16:57 UTCEPSS rescore
  63. 2026-07-15 16:57 UTCEPSS rescore
  64. 2026-07-13 22:30 UTCEPSS rescore
  65. 2026-07-13 21:38 UTCOSV refresh
  66. 2026-07-13 06:13 UTCEPSS rescore
  67. 2026-07-13 06:13 UTCEPSS rescore
  68. 2026-07-12 05:46 UTCEPSS rescore
  69. 2026-07-12 05:46 UTCEPSS rescore
  70. 2026-07-09 19:10 UTCEPSS rescore
  71. 2026-07-08 15:15 UTCEPSS rescore
  72. 2026-07-08 15:15 UTCEPSS rescore
  73. 2026-07-07 13:46 UTCEPSS rescore
  74. 2026-07-06 16:27 UTCEPSS rescore
  75. 2026-07-06 16:27 UTCEPSS rescore

Frequently asked(5)

What is CVE-2026-23102?
CVE-2026-23102 is a high vulnerability published on February 4, 2026. In the Linux kernel, the following vulnerability has been resolved: arm64/fpsimd: signal: Fix restoration of SVE context When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds…
When was CVE-2026-23102 disclosed?
CVE-2026-23102 was first published in the National Vulnerability Database on February 4, 2026, with the most recent update on June 17, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-23102 actively exploited?
CVE-2026-23102 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0% probability of exploitation in the next 30 days, which ranks it in the top 97.8% of all scored CVEs.
What is the CVSS score of CVE-2026-23102?
CVE-2026-23102 has a CVSS v3 base score of 7.1 (NVD).
How do I remediate CVE-2026-23102?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-23102, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-23102

Explore →

Is Your Infrastructure Affected by CVE-2026-23102?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.