CWE一覧に戻る
CWE-1422

トランジェント実行時の不正なデータ転送による機密情報の漏洩について

Exposure of Sensitive Information caused by Incorrect Data Forwarding during Transient Execution
脆弱性 作成中
JA

プロセッサのイベントや予測によって、不正確なデータや古いデータが過渡的なオペレーションに転送される可能性がある。
トランジェント・オペレーションに転送される可能性がある。
データを公開する可能性がある。

ソフトウエアは、以下のようなさまざまなテクニックを使って、現在アクセス可能な個人データの機密性を保持することができる。
現在のプロセッサ・コンテキスト内でアクセス可能なプライベート・データの機密性を保持するため
を使用することができる。例えば
の特性は、そのような言語で書かれたソフトウェアがプライベート・データを公開するのを防ぐのに役立つ。
例えば、高水準プログラミング言語のメモリ安全性や型安全性は、その言語で書かれたソフトウェアがプライベート・データを公開するのを防ぐのに役立ちます。第二の例として
つ目の例として、ソフトウェア・サンドボックスは、複数のユーザーのソフトウェアを1つのプロセス内に共存させることができる。
ソフトウェアを1つのプロセス内に共存させることができる。プロセッサの命令セット
プロセッサの命令セット・アーキテクチャ(ISA)は、あるユーザーのソフトウェアが別のユーザーのデータ
あるユーザーのソフトウェアが別のユーザーのデータにアクセスすることを、プロセッサーの命令セット・アーキテクチャ(ISA)は許可するかもしれない(ソフトウェアが同じアドレス空間を共有しているため)。
サンドボックスは、バウンズチェックのようなソフトウェア技術を使って、このようなアクセスを防ぎます。
サンドボックスは、バウンズチェックなどのソフトウェア技術を使用して、こうしたアクセスを防止する。

不正確なデータや古いデータが(たとえばキャッシュから)一過性の操作に転送される可能性がある場合、サンドボックスはそのようなアクセスを防止する。
キャッシュから)転送される可能性がある場合、その操作のマイクロアーキテクチャ上の副作用は、その操作に対応する可能性がある。
マイクロアーキテクチャの副作用がそのデータに対応する可能性があります。もし
攻撃者がこれらの一時的なオペレーションをトリガーし、その副作用を観察できる場合
攻撃者がこれらの一時的なオペレーションをトリガーし、その副作用を秘密のチャネルを通して観察することができれば、攻撃者はデータを推測することができる。
データを推測することができる。例えば、攻撃者プロセスは被害者プロセスで一時的な実行を誘発することができる。
を誘発することができる。
にアクセスさせ、秘密チャネルを通じてそのプライベートデータを公開させることができる。ソフトウェアのサンドボックスの例では
ソフトウェア・サンドボックスの例では、攻撃者のサンドボックスが自身のコードに一時的な実行を誘発する可能性がある。
攻撃者のサンドボックスは自身のコードに一時的な実行を誘発することができる。
同じアドレス空間を共有する被害者サンドボックスのデータに一時的にアクセスし、公開することができる。

その結果、不正確で陳腐化したデータ
転送によって生じる弱点は、ソフトウェアベースのメモリ安全性と分離技術に対するユーザーの期待に反する可能性があります。
安全性と分離技術に対するユーザーの期待に反する可能性があります。データ転送の動作が
データ転送の動作がハードウェア・ベンダーによって適切に文書化されていない場合、ハードウェアがどのように動作すべきかというソフトウェア・ベンダーの期待に反する可能性があります。
データ転送の動作がハードウェア・ベンダーによって適切に文書化されていない場合、ハードウェアがどのように動作すべきかというソフトウェア・ベンダーの期待に反する可能性があります。

EN

A processor event or prediction may allow incorrect or stale data to
be forwarded to transient operations, potentially exposing data over a
covert channel.

Software may use a variety of techniques to preserve the
confidentiality of private data that is accessible within the current
processor context. For example, the memory safety and type safety
properties of some high-level programming languages help to prevent
software written in those languages from exposing private data. As a
second example, software sandboxes may co-locate multiple users'
software within a single process. The processor's Instruction Set
Architecture (ISA) may permit one user's software to access another
user's data (because the software shares the same address space), but
the sandbox prevents these accesses by using software techniques such
as bounds checking.

If incorrect or stale data can be forwarded (for example, from a
cache) to transient operations, then the operations'
microarchitectural side effects may correspond to the data. If an
attacker can trigger these transient operations and observe their side
effects through a covert channel, then the attacker may be able to
infer the data. For example, an attacker process may induce transient
execution in a victim process that causes the victim to inadvertently
access and then expose its private data via a covert channel. In the
software sandbox example, an attacker sandbox may induce transient
execution in its own code, allowing it to transiently access and
expose data in a victim sandbox that shares the same address space.

Consequently, weaknesses that arise from incorrect/stale data
forwarding might violate users' expectations of software-based memory
safety and isolation techniques. If the data forwarding behavior is
not properly documented by the hardware vendor, this might violate the
software vendor's expectation of how the hardware should behave.

Scope: Confidentiality / Impact: Read Memory
The hardware designer can attempt to prevent transient
execution from causing observable discrepancies in specific covert
channels.
Processor designers, system software vendors, or other
agents may choose to restrict the ability of unprivileged software to
access to high-resolution timers that are commonly used to monitor
covert channels.
Processor designers may expose instructions or other
architectural features that allow software to mitigate the effects of
transient execution, but without disabling predictors. These features
may also help to limit opportunities for data exposure.
Processor designers may expose registers (for example,
control registers or model-specific registers) that allow privileged
and/or user software to disable specific predictors or other hardware
features that can cause confidential data to be exposed during
transient execution.
Use software techniques (including the use of
serialization instructions) that are intended to reduce the number of
instructions that can be executed transiently after a processor event
or misprediction.
Isolate sandboxes or managed runtimes in separate address
spaces (separate processes).
Include serialization instructions (for example, LFENCE)
that prevent processor events or mis-predictions prior to the
serialization instruction from causing transient execution after the
serialization instruction. For some weaknesses, a serialization
instruction can also prevent a processor event or a mis-prediction
from occurring after the serialization instruction (for example,
CVE-2018-3639 can allow a processor to predict that a load will not
depend on an older store; a serialization instruction between the
store and the load may allow the store to update memory and prevent
the mis-prediction from happening at all).
Use software techniques that can mitigate the
consequences of transient execution. For example, address masking can
be used in some circumstances to prevent out-of-bounds transient
reads.
If the weakness is exposed by a single instruction (or a
small set of instructions), then the compiler (or JIT, etc.) can be
configured to prevent the affected instruction(s) from being
generated, and instead generate an alternate sequence of instructions
that is not affected by the weakness.
If a hardware feature can allow incorrect or stale data
to be forwarded to transient operations, the hardware designer may opt
to disclose this behavior in architecture documentation. This
documentation can inform users about potential consequences and
effective mitigations.
MITRE公式ページ — CWE-1422