CVE-2021-47414 in Linuxinfo

Zusammenfassung

von VulDB • 01.06.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

riscv: Leeren des aktuellen CPU-I-Caches vor anderen CPUs

Auf einem SiFive Unmatched ist beim Booten kürzlich der folgende BUG aufgetreten:

[ 0.000000] ftrace: Allokieren von 36610 Einträgen in 144 Seiten
[ 0.000000] Oops - ungültige Anweisung [#1]
[ 0.000000] Geladene Module:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Nicht verändert 5.13.1+ #5
[ 0.000000] Hardware-Name: SiFive HiFive Unmatched A00 (DT)
[ 0.000000] epc : riscv_cpuid_to_hartid_mask+0x6/0xae
[ 0.000000] ra : sbi_remote_fence_i+0x1e/0x26
[ 0.000000] epc : ffffffff80000000 ra : fffffffe80000000 sp : ffffffe07fe03d30
[ 0.000000] s0 : ff00000000000000
[ 0.000000] s1 : ff00000000000000 s2 : 0000000000000000 s3 : 0000000000000000
[ 0.000000] s4 : 0000000000000000 s5 : 0000000000000000 s6 : 0000000200000100 s7 : 0000000000000001
[ 0.000000] s8 : ffffffe07fe04040 s9 : ffffffff81a22c80 s10: 0000000000001000
[ 0.000000] s11: 0000000000000004 t3 : 0000000000000001 t4 : 0000000000000008
[ 0.000000] t5 : ffffffcf04000808 t6 : ffffffe3ffddf188
[ 0.000000] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000002
[ 0.000000] [] riscv_cpuid_to_hartid_mask+0x6/0xae
[ 0.000000] [] sbi_remote_fence_i+0x1e/0x26
[ 0.000000] [] flush_icache_all+0x12/0x1a
[ 0.000000] [] patch_text_nosync+0x26/0x32
[ 0.000000] [] ftrace_init_nop+0x52/0x8c
[ 0.000000] [] ftrace_process_locs.isra.0+0x29c/0x360
[ 0.000000] [] ftrace_init+0x80/0x130
[ 0.000000] [] start_kernel+0x5c4/0x8f6
[ 0.000000] ---[ end trace f67eb9af4d8d492b ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
[ 0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]-

Während ftrace über eine Liste von Adressen zum Patchen iteriert, trat immer ein Fehler beim Patchen derselben Funktion auf: riscv_cpuid_to_hartid_mask. In der Backtrace wird deutlich, dass die ungültige Anweisung in dieser Funktion auftritt. Allerdings ruft patch_text_nosync nach dem Patchen der Anweisungen flush_icache_range auf. Bei der Betrachtung dessen, was in dieser Funktion passiert:

flush_icache_range -> flush_icache_all -> sbi_remote_fence_i -> __sbi_rfence_v02 -> riscv_cpuid_to_hartid_mask

Der I-Cache und D-Cache der aktuellen CPU werden zwischen dem Patchen

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

Veröffentlichung

21.05.2024

Moderieren

akzeptiert

Eintrag

VDB-265425

CPE

bereit

EPSS

0.00222

KEV

nein

Aktivitäten

very low

Quellen

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!