この製品はリソースを初期化しようとしますが、正しく初期化されないため、リソースがアクセスされたときに予期しない、不正確な、または安全でない状態になる可能性があります。
これは、関連するリソースが特定のプロパティや値を持つことが期待される場合、 セキュリティに影響を及ぼす可能性がある。例えば、ユーザが認証されたかどうかを決定する変数や、製品のセキュ リティ状態を決定するレジスタやヒューズ値などです。
ソフトウェアでは、暗黙的な初期化、つまりリソースが明示的に特定の値に設定されていない場合に、この弱点が頻繁に発生する可能性があります。例えば、C言語では、スタックにメモリが確保されたときに必ずしもクリアされるとは限らず、多くのスクリプト言語では、変数が明示的に初期化されない場合、デフォルトの空、ヌル値、またはゼロ値が使用されます。
ハードウェアの場合、この弱点はリセット値やヒューズで頻繁に現れます。製品のリセット後、ハードウェアはレジスタを誤って初期化する可能性があります。製品ライフサイクルの様々な段階で、ヒューズが正しくない値に設定されることがあります。たとえヒューズが正しい値に設定されていたとしても、ヒューズへの線が断線していたり、ヒューズの値を正しくない値に変更するハードウェアがヒューズ線上にあるかもしれません。
The product attempts to initialize a resource but does not correctly do so, which might leave the resource in an unexpected, incorrect, or insecure state when it is accessed.
This can have security implications when the associated resource is expected to have certain properties or values. Examples include a variable that determines whether a user has been authenticated or not, or a register or fuse value that determines the security state of the product.
For software, this weakness can frequently occur when implicit initialization is used, meaning the resource is not explicitly set to a specific value. For example, in C, memory is not necessarily cleared when it is allocated on the stack, and many scripting languages use a default empty, null value, or zero value when a variable is not explicitly initialized.
For hardware, this weakness frequently appears with reset values and fuses. After a product reset, hardware may initialize registers incorrectly. During different phases of a product lifecycle, fuses may be set to incorrect values. Even if fuses are set to correct values, the lines to the fuse could be broken or there might be hardware on the fuse line that alters the fuse value to be incorrect.