W emulatorze OpenXiangShan NEMU z włączonym rozszerzeniem RVH (RISC-V Hypervisor) zapis do rejestru CSR sie z poziomu gościa VS-mode może nieprawidłowo wpłynąć na stan rejestru mie na poziomie maszynowym. Przełamuje to granice izolacji uprawnień i wirtualizacji, co jest szczególnie groźne w środowiskach wykorzystujących NEMU do prawidłowej wirtualizacji przerwań.
▸ Pokaż oryginał (EN)
In OpenXiangShan NEMU prior to 55295c4, when running with RVH (Hypervisor extension) enabled, a VS-mode guest write to the supervisor interrupt-enable CSR (sie) may be handled incorrectly and can influence machine-level interrupt enable state (mie). This breaks privilege/virtualization isolation and can lead to denial of service or privilege-boundary violation in environments relying on NEMU for correct interrupt virtualization.
Rozszerzenie RVH dla architektury RISC-V definiuje ścisłą hierarchię poziomów uprawnień: machine (M), supervisor (S) i virtual supervisor (VS). Zapis gościa działającego w trybie VS-mode do rejestru CSR sie (supervisor interrupt-enable) powinien być izolowany i nie wpływać na rejestr mie (machine interrupt-enable), który należy do najwyższego poziomu uprawnień. W wersjach NEMU wcześniejszych niż commit 55295c4 obsługa tego zapisu jest nieprawidłowa, co pozwala gościowi VS-mode na modyfikację stanu przerwań na poziomie maszynowym bez wymaganych uprawnień. Narusza to fundamentalną zasadę izolacji warstw wirtualizacji.
Atakujący lub złośliwy kod działający w środowisku gościa (VS-mode) może doprowadzić do odmowy usługi (DoS) przez zakłócenie obsługi przerwań maszynowych lub naruszyć granice uprawnień w środowiskach opartych na NEMU do wirtualizacji przerwań.
Należy zaktualizować OpenXiangShan NEMU do wersji zawierającej commit 55295c4 lub nowszej. Szczegóły dostępne są w referencjach producenta oraz w zgłoszeniu GitHub issue #951.
OpenXiangShan NEMU we wszystkich wersjach poprzedzających commit 55295c4, uruchomiony z włączonym rozszerzeniem RVH (RISC-V Hypervisor extension).
Podatność zgłoszona w repozytorium GitHub OpenXiangShan/NEMU jako issue #951. Fix zidentyfikowany jako commit 55295c4.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H