Bug 1182867 (CVE-2021-0086) - VUL-0: CVE-2021-0086,CVE-2021-0089: Intel: Speculative Code Store Bypass (SCSB) / Floating Point Value Injection (FPVI)
Summary: VUL-0: CVE-2021-0086,CVE-2021-0089: Intel: Speculative Code Store Bypass (SCS...
Status: RESOLVED FIXED
Alias: CVE-2021-0086
Product: SUSE Security Incidents
Classification: Novell Products
Component: Incidents (show other bugs)
Version: unspecified
Hardware: Other Other
: P3 - Medium : Normal
Target Milestone: ---
Assignee: Security Team bot
QA Contact: Security Team bot
URL: https://smash.suse.de/issue/278754/
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-03-01 15:09 UTC by Marcus Meissner
Modified: 2024-05-23 15:10 UTC (History)
5 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Comment 2 Marcus Meissner 2021-03-03 16:42:33 UTC
SCSB - Speculative Code Store Bypass
FPVI - Floating Point Value Injection
Comment 4 Marcus Meissner 2021-08-17 15:16:32 UTC
https://software.intel.com/content/www/us/en/develop/articles/software-security-guidance/advisory-guidance/speculative-code-store-bypass.html

Speculative Code Store Bypass / CVE-2021-0089 / INTEL-SA-00516 

Overview

An in-domain transient execution attack methodology known as Speculative Code Store Bypass (SCSB) may allow data values to be inferred during the transient execution of self-modifying code (SMC) on some Intel processors. SCSB has been assigned CVE-2021-0089 with a base score of CVSS 6.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N. Refer to the Affected Processors table for a list of processors affected by SCSB.

A software SMC environment such as a just-in-time (JIT) compiler may generate or modify instruction bytes, and then execute those bytes without serialization. Code bytes may be fetched and executed transiently by the processor before the processor observes a recent store to those code bytes. When an older store is observed, the pipeline will be cleared and instructions re-fetched. In some contexts, an adversary may be able to control the stale code bytes executed transiently. This may allow the adversary to cause specific data to be inferable via a microarchitectural covert channel. Incidental channels (for example, CPU cache state) can be used to encode and transmit data that is accessed transiently; when an incidental channel is used by an adversary to intentionally transmit data, it is often referred to as a covert channel.

Software environments that use SMC may be impacted by SCSB. Note that the adversary must be able to generate and execute SMC within the same address space where the targeted victim data is located (thus, SCSB is in-domain1). For example, some JIT compilers inside web browsers may satisfy these requirements, and therefore may be impacted by SCSB.
Mitigation

In common with other in-domain transient execution attacks, process isolation is an effective mitigation for SCSB. More information on using process isolation for in-domain transient execution attack mitigations can be found in Managed Runtime Speculative Execution Side Channel Mitigations.

Alternatively, serialization can be employed between writing the code bytes and executing the code bytes to help ensure that the old code bytes are not transiently executed:

    Architectural serialization operations (for example, CPUID or INVLPG) will help ensure that the code modification is synchronized.
    On current and in-development processors, LFENCE, SYSRET, or INVPCID will help ensure that the old code bytes are not transiently executed but they may not satisfy the synchronization guidelines2 described in the Intel Software Developer's Manual (SDM).

Some software SMC environments enforce an “either writable or executable” policy on pages with modifiable code. This is sometimes written as “W^X” policy. The system calls to transition a user page from writable to executable already include the serialization necessary to mitigate SCSB. For example, if a software SMC environment does not use process isolation but does enforce a W^X policy with serialization across W/X transitions, then the environment should not be impacted by SCSB.
Comment 5 Marcus Meissner 2021-08-17 15:23:42 UTC
AMD specific bug is here bug 1189522
Comment 6 Andrea Mattiazzo 2024-05-23 15:10:12 UTC
All done, closing.