CVE-2022-49001

Summary

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

riscv: fix race when vmap stack overflow

Currently, when detecting vmap stack overflow, riscv firstly switches to the so called shadow stack, then use this shadow stack to call the get_overflow_stack() to get the overflow stack. However, there's a race here if two or more harts use the same shadow stack at the same time.

To solve this race, we introduce spin_shadow_stack atomic var, which will be swap between its own address and 0 in atomic way, when the var is set, it means the shadow_stack is being used; when the var is cleared, it means the shadow_stack isn't being used.

[Palmer: Add AQ to the swap, and also some comments.]

Affected Software

VendorProductVersion RangeStatus
LinuxLinux31da94c25aea835ceac00575a9fd206c5a833fed < ac00301adb19df54f2eae1efc4bad7447c0156ceaffected
LinuxLinux31da94c25aea835ceac00575a9fd206c5a833fed < 879fabc5a95401d9bce357e4b1d24ae4a360a81faffected
LinuxLinux31da94c25aea835ceac00575a9fd206c5a833fed < 7e1864332fbc1b993659eab7974da9fe8bf8c128affected
LinuxLinux5.14affected
LinuxLinux0 < 5.14unaffected
LinuxLinux5.15.82 <= 5.15.*unaffected
LinuxLinux6.0.12 <= 6.0.*unaffected
LinuxLinux6.1 <= *unaffected

Weaknesses

ADP Enrichment

CISA ADP Vulnrichment

  • SSVC:
  • Exploitation: none
    • Automatable: no
    • Technical Impact: partial

References