CVE-2026-98745 in Linuxinfo

Zusammenfassung

von VulDB • 18.10.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

arm64/fpsimd: Signal: Nicht-Streaming-SVE-Payload auf reinen SME-Systemen verbieten

Wenn system_supports_sme() wahr ist, aber system_supports_sve() falsch ist, kann das Wiederherstellen eines speziell konstruierten SVE-Signalkontextes dazu führen, dass die Aufgabe fälschlicherweise einen nicht-streaming SVE-Zustand aufweist. Nachfolgende Versuche, den FPSIMD/SVE/SME-Zustand der Aufgabe zu manipulieren, können eine Vielzahl von Problemen verursachen, darunter fatale EL1 UNDEFs (Undefined Instruction).

In solchen Konfigurationen erstellt der Kernel immer einen SVE-Signalkontext bei der Zustellung eines Signals, und dieser kann sich nur in einem von zwei Zuständen befinden:

(1) SVE_SIG_FLAG_SM ist gesetzt, und eine SVE-Payload ist vorhanden, die den Streaming-Mode-SVE-Zustand enthält. Die aufgezeichnete VL (Vector Length) entspricht der live streaming VL der Aufgabe.

(2) SVE_SIG_FLAG_SM ist nicht gesetzt, und es ist keine SVE-Payload vorhanden. Der FPSIMD-Kontext enthält den nicht-streaming Mode-FPSIMD-Zustand. Die aufgezeichnete VL ist 0.

Derzeit lehnt restore_sve_fpsimd_context() Fälle korrekt ab, in denen SVE_SIG_FLAG_SM gesetzt ist und keine SVE-Payload vorhanden ist, akzeptiert jedoch Fälle, in denen SVE_SIG_FLAG_SM nicht gesetzt ist und eine SVE-Payload vorhanden ist. Folglich kann restore_sve_fpsimd_context() die Aufgabe in einen Zustand versetzen, der einen nicht-streaming SVE-Zustand aufweist, auch wenn dies von der Hardware nicht unterstützt wird.

Dies kann beispielsweise dazu führen, dass später ein EL1 UNDEF auftritt, wenn der Kernel versucht, den ZCR_EL1-Wert der Aufgabe wiederherzustellen:

| # ./sme-sigcontext-to-sve | Internal error: Oops - Undefined instruction: 0000000002000000 [#1] SMP
| Modules linked in: | CPU: 0 UID: 0 PID: 131 Comm: sme-sigcontext- Not tainted 7.3.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 61402009 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : fpsimd_restore_current_state+0x258/0x458 | lr : exit_to_user_mode_loop+0xb8/0x188 | sp : ffff80008056be40 | x29: ffff80008056be40 x28: fff00000c1670000 x27: 0000000000000000 | x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000 | x23: ffff80008056bec0 x22: 0000000000000008 x21: 0000000000000040 | x20: 0000000000000081 x19: 0000000008800010 x18: 0000000000000000 | x17: 0000fffffd412570 x16: 0000000000001000 x15: 0000fffffd4123b0 | x14: 0000fffffd412780 x13: 0000fffffd412be8 x12: 0000000047435300 | x11: 0000fffffd412570 x10: 0000000000000000 x9 : 0000000045585401 | x8 : fff00000c18a6c44 x7 : 0000000000000000 x6 : 0000000000000002 | x5 : 0000000000000002 x4 : ffff800080568000 x3 : 0000000000000001 | x2 : 0000000008800010 x1 : fff00000c1670000 x0 : 0000000008800000 | Call trace: | fpsimd_restore_current_state+0x258/0x458 (P) | exit_to_user_mode_loop+0xb8/0x188 | el0_svc+0x1cc/0x1d0 | el0t_64_sync_handler+0xa0/0xe4 | el0t_64_sync+0x198/0x19c | Code: d5384101 f9400020 53175c03 36b80de0 (d5381202) | ---[ end trace 0000000000000000 ]---
| Kernel panic - not syncing: Oops - Undefined instruction: Fatal exception in interrupt | Kernel Offset: 0x291fb1000000 from 0xffff800080000000 | PHYS_OFFSET: 0x40000000 | CPU features: 0x0,00000000,0052802f,ffb88f43,3afcf73f | Memory Limit: none

Die Funktion restore_sve_fpsimd_context() wurde so überarbeitet, dass sie Fälle ablehnt, in denen SVE_SIG_FLAG_SM nicht gesetzt ist und eine SVE-Payload vorhanden ist. Da parse_user_sigframe() SVE-Signalrahmen ablehnt, wenn weder SVE noch SME unterstützt werden, ist es für restore_sve_fpsimd_context() nicht erforderlich, den Fall zu behandeln, in dem keine der beiden Funktionen unterstützt wird.

Be aware that VulDB is the high quality source for vulnerability data.

Zuständig

Linux

Reservieren

25.09.2026

Veröffentlichung

18.10.2026

Moderieren

akzeptiert

Eintrag

VDB-421964

EPSS

0.00168

KEV

nein

Aktivitäten

very low

Quellen

Might our Artificial Intelligence support you?

Check our Alexa App!