qemu/target/xtensa
Max Filippov ecc23c6e95 target/xtensa: fix OOB TLB entry access
r[id]tlb[01], [iw][id]tlb opcodes use TLB way index passed in a register
by the guest. The host uses 3 bits of the index for ITLB indexing and 4
bits for DTLB, but there's only 7 entries in the ITLB array and 10 in
the DTLB array, so a malicious guest may trigger out-of-bound access to
these arrays.

Change split_tlb_entry_spec return type to bool to indicate whether TLB
way passed to it is valid. Change get_tlb_entry to return NULL in case
invalid TLB way is requested. Add assertion to xtensa_tlb_get_entry that
requested TLB way and entry indices are valid. Add checks to the
[rwi]tlb helpers that requested TLB way is valid and return 0 or do
nothing when it's not.

Cc: qemu-stable@nongnu.org
Fixes: b67ea0cd74 ("target-xtensa: implement memory protection options")
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20231215120307.545381-1-jcmvbkbc@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit 604927e357)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-01-27 18:05:30 +03:00
..
core-dc232b meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-dc233c meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-de212 meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-de233_fpu Clean up decorations and whitespace around header guards 2022-05-11 16:50:32 +02:00
core-dsp3400 Clean up decorations and whitespace around header guards 2022-05-11 16:50:32 +02:00
core-fsf meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-lx106 target/xtensa: import core lx106 2022-05-06 15:27:40 -07:00
core-sample_controller meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-test_kc705_be meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-test_mmuhifi_c3 meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-dc232b.c meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-dc233c.c meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-de212.c meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-de233_fpu.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
core-dsp3400.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
core-fsf.c meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-lx106.c target/xtensa: import core lx106 2022-05-06 15:27:40 -07:00
core-sample_controller.c meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-test_kc705_be.c meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
core-test_mmuhifi_c3.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
cores.list target/xtensa: import core lx106 2022-05-06 15:27:40 -07:00
cpu-param.h Normalize header guard symbol definition 2022-05-11 16:50:26 +02:00
cpu-qom.h target: Introduce and use OBJECT_DECLARE_CPU_TYPE() macro 2022-03-06 22:23:09 +01:00
cpu.c target/xtensa: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
cpu.h target/xtensa: add clock input to xtensa CPU 2022-05-06 15:27:40 -07:00
dbg_helper.c exec/exec-all: Move 'qemu/log.h' include in units requiring it 2022-02-21 10:18:06 +01:00
exc_helper.c exec/exec-all: Move 'qemu/log.h' include in units requiring it 2022-02-21 10:18:06 +01:00
fpu_helper.c exec/exec-all: Move 'qemu/log.h' include in units requiring it 2022-02-21 10:18:06 +01:00
gdbstub.c xtensa tcg cpus: Fix Lesser GPL version number 2020-11-15 16:40:15 +01:00
helper.c accel/tcg: Remove will_exit argument from cpu_restore_state 2022-11-01 08:31:41 +11:00
helper.h target/xtensa: implement FPU division and square root 2020-08-21 12:48:15 -07:00
import_core.sh Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
Kconfig meson: Introduce target-specific Kconfig 2021-07-09 18:21:34 +02:00
meson.build target/xtensa: list cores in a text file 2021-10-05 13:10:29 +02:00
mmu_helper.c target/xtensa: fix OOB TLB entry access 2024-01-27 18:05:30 +03:00
monitor.c hmp: Pass monitor to mon_get_cpu_env() 2020-11-13 12:45:51 +00:00
op_helper.c target/xtensa: add clock input to xtensa CPU 2022-05-06 15:27:40 -07:00
overlay_tool.h Replace TARGET_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
translate.c target/xtensa: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
win_helper.c exec/exec-all: Move 'qemu/log.h' include in units requiring it 2022-02-21 10:18:06 +01:00
xtensa-isa-internal.h Clean up decorations and whitespace around header guards 2019-05-13 08:58:55 +02:00
xtensa-isa.c Clean up includes 2018-02-09 05:05:11 +01:00
xtensa-isa.h Use #include "..." for our own headers, <...> for others 2018-02-09 05:05:11 +01:00
xtensa-semi.c target/xtensa/xtensa-semi: Fix compilation problem on Haiku 2021-07-09 18:42:46 +02:00